/**
* @author SevenFin
* @date 2017-11-10 上午10:52:08
* @param id ID前17位
* @return ID第18位 校验位
*/
public static String verifyId(String id) {
int count = 0;
char[] charArr = id.toCharArray();
for (int i = 0; i < charArr.length; i++) {
int n = Integer.parseInt(charArr[i] + "");
count += n * (Math.pow(2, 17 - i) % 11);
}
switch (count % 11) {
case 0: return "1";
case 1: return "0";
case 2: return "X";
default:
return 12 - (count % 11) + "";
}
}
本文深入探讨了身份证号码的校验算法,详细解释了如何通过前17位数字计算出最后一位校验位的过程。文章提供了一段Java代码示例,展示了具体的计算逻辑和校验位生成方法。
2万+

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



