星期四, 4月 21, 2005

身分證號碼檢查

在http://www.neo.com.tw/archives/000490.html 看到的

private boolean isIdNumber(String ID) {
boolean rule = false;
if (ID.length() == 10) {
ID = ID.toUpperCase();
byte s[] = ID.getBytes();
if (s[0] >= 65 && s[0] <= 90) {
int[] c = new int[11];
int a[] = {10, 11, 12, 13, 14, 15, 16, 17, 34, 18, 19, 20, 21, 22, 35, 23, 24, 25,26, 27, 28, 29, 32, 30, 31, 33};
c[0] = a[ (s[0]) - 65] / 10;
c[1] = a[ (s[0]) - 65] % 10;
for (int i = 1; i <= 9; i++) {
c[i + 1] = s[i] - 48;
}
int count = c[0];
for (int i = 1; i <= 9; i++) {
count += c[i] * (10 - i);
}
if ( ( (count % 10) + c[10]) == 10) {
rule = true;
}
}
}
return (rule);
}

A=65(ASCII)
Z=90(ASCII)

A=10 台北市 J=18 新竹縣 S=26 高雄縣
B=11 台中市 K=19 苗栗縣 T=27 屏東縣
C=12 基隆市 L=20 台中縣 U=28 花蓮縣
D=13 台南市 M=21 南投縣 V=29 台東縣
E=14 高雄市 N=22 彰化縣 * W=32 金門縣
F=15 台北縣 * O=35 新竹市 X=30 澎湖縣
G=16 宜蘭縣 P=23 雲林縣 Y=31 陽明山
H=17 桃園縣 Q=24 嘉義縣 * Z=33 連江縣
* I=34 嘉義市 R=25 台南縣

沒有留言:

張貼留言