我是靠谱客的博主 沉默白云,这篇文章主要介绍java如何验证身份证第十八位是否符合相应的算法,现在分享给大家,希望可以做个参考。

身份证第十八位要符合如下算法:
返回值类型为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如何验证身份证第十八位是否符合相应内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部