+ -
当前位置:首页 → 问答吧 → 请问如何用正规表示法来计算

请问如何用正规表示法来计算

时间:2011-10-05

来源:互联网

1
2
3
4
5
6
7
8
9
import java.util.regex.*;
  public class Test {
    public static void main (String[] args){
      String id = "A123456789";
      Pattern pattern = Pattern.compile("[A-Z][1-2]\\d{8}$");
      Matcher matcher = pattern.matcher(id);
      System.out.println(matcher.find());
  }
}


这是一段只检查身分证格式的程式码

但身分证最后一码是所谓的检查码或是验证码

是利用前面的号码计算出来的

请问我该如何利用正规表示法把这个公式写出来呢?

公式如下

第一码的英文字母可以转换成两个数字

A=1,0
B=1,1
.
.
.
Z=3,3

以A123456789来当例子

A当作1跟0

[(1*1)+(0*9)+(1*8)+(2*7)+(3*6)+(4*5)+(5*4)+(6*3)+(7*2)+(8*1)]/10=12余1

用10-1=9就是最后一码

请问大家我该如何写出来呢?

作者: dancemapletree   发布时间: 2011-10-05

正规表示式…是用来表示某种资料规则,只有表示符号

作者: jfire   发布时间: 2011-10-25