public void calculateCheckDigit() {
String strCardNum = "PAK32018108031";
int[] ncardNUm = new int[14];
for (int i = 0; i < 3; i++) {
ncardNUm[i] = strCardNum.substring(i, i + 1).getBytes()[0] - 55;
System.out.println("ncardNUm = " + ncardNUm[i]);
}
for (int i = 3; i < strCardNum.length(); i++) {
ncardNUm[i] = Integer.parseInt(strCardNum.substring(i, i + 1));
System.out.println("nNum = " + ncardNUm[i]);
}
int sum = 0;
int[] weightNumber = new int[]{0x07, 0x03, 0x01};
for (int i = 0; i < strCardNum.length(); i++){
sum += ncardNUm[i] * weightNumber[i % 3];
}
System.out.println("sum = " + sum);
int checkValue = sum % 10;
System.out.println("checkValue = " + checkValue);
}
2017版外国人身份证七三一校验法计算校验值
于 2024-07-03 16:49:47 首次发布
1087

被折叠的 条评论
为什么被折叠?



