身份证第十八位要符合如下算法:
返回值类型为boolean,如果最后位一位数符合算法则返回true ,否则返回false。
private Boolean checkIdNoIsAlgorithm(String idNo){
Character lastId = null;
int[] weightArray = {7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};//权数数组
String vCode = "10X98765432";//校验码字符串
int sumNum = 0;//前17为乘以权然后求和得到的数
//循环乘以权,再求和
for(int i=0;i<17;i++) {
int index = Integer.parseInt(idNo.charAt(i)+"");
sumNum = sumNum +index*weightArray[i];//乘以权数,再求和
}
int modNum = sumNum%11;//求模
lastId = vCode.charAt(modNum);//从验证码中找出对应的数
String lastId1=lastId.toString();
String lastNum=idNo.substring(17,18);
if(lastId1.equals(lastNum)) {
return true;
}else {
return false;
}
}
最后
以上就是沉默白云最近收集整理的关于java如何验证身份证第十八位是否符合相应的算法的全部内容,更多相关java如何验证身份证第十八位是否符合相应内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复