概述
身份证第十八位要符合如下算法:
返回值类型为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如何验证身份证第十八位是否符合相应的算法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复