首页 > 编程语言 >java 身份证号校验

java 身份证号校验

时间:2022-12-07 09:24:10浏览次数:37  
标签:carNumber java weight int sum 身份证号 校验 身份证

创建CardUtil工具类

public class CardUtil {

    /**
     * 验证身份证真假
     * @param  carNumber 身份证号
     * @return boolean*/
    public static boolean isCard(String carNumber) {
        //判断输入身份证号长度是否合法
        if (carNumber.length() != 18) {
            throw new RuntimeException("身份证长度不合法");//不合法 抛出一个异常
        }
        //校验身份证真假
        int sum = 0;
        int[] weight = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};//将加权因子定义为数组
        //遍历weight数组 求身份证前17项系数和
        for (int i = 0; i < weight.length; i++) {
            int n = carNumber.charAt(i) - 48;//获取 身份证对应数
            int w = weight[i];
            sum += w * n;
        }
        //对11求余
        int index = sum % 11;
        //校验码
        String m = "10X98765432";
        //获取身份证最后一位进行比对
        return m.charAt(index) == carNumber.charAt(17);
    }

}

标签:carNumber,java,weight,int,sum,身份证号,校验,身份证
From: https://www.cnblogs.com/h-w-b/p/16962085.html

相关文章

  • 1.5.4 HDFS 客户端操作-hadoop-最全最完整的保姆级的java大数据学习资料
    目录1.5.4HDFS客户端操作1.5.4.1Shell命令行操作HDFS1.5.4.2JAVA客户端1.5.4.2.1客户端环境准备1.5.4.2.2HDFS的API操作1.5.4.2.2.1上传文件1.5.4.2.2.2下载文件1......
  • Java web 概念
          ......
  • JavaSE复习day2
    JavaSE复习day2胡家伟7.数组定义数组是一种在内存中存储数据的载体,相比普通变量,同时拥有多个空间。基本数据类型的值直接存储在变量所声明的对应的栈空间中,引用数据......
  • Java入门(二) —— 开发工具配置
    教程中所用到的工具请关注微信公众号:科技前端,回复“工具”即可获得。Java开发工具最常用的就是Eclipse和IDEA,不过我个人推荐用IDEA。下面我将分别介绍这两个软件。一、E......
  • java Collection 排序
    Integer排序Collections.sort(resList,Comparator.comparingInt(SpecialStateCountVo::getSpecialNum).reversed());String排序list=list.stream().sorted(Comparat......
  • 在Maven中出现javax.mail中文乱码问题解决记录
    学习Java时,看廖雪峰大神文章使用了javax.mail来发送SMTP邮件。在加入中文时,发现收到的邮件里中文都是乱码。按照一般经验,多半是编码的问题。然而在代码中,会涉及到编码的地......
  • Java学习(基础)
    学习视频:Java零基础学习视频通俗易懂Java注释单行注释//多行注释/**/文档注释:/****/有趣的代码注释/****_ooOoo_*......
  • 当我们的执行 java -jar xxx.jar 的时候底层到底做了什么?
    大家都知道我们常用的SpringBoot项目最终在线上运行的时候都是通过启动java-jarxxx.jar命令来运行的。那你有没有想过一个问题,那就是当我们执行java-jar命令后,到......
  • Java入门学习
    P13Java帝国的诞生Java初生:Java2标准版(J2SE):去占领桌面Java2移动版(J2ME):去占领手机Java2企业版(J2EE):去占领服务器Java发展:构建工具:Ant,Maven,Jekins应用服......
  • Java开发学习(四十八)----MyBatisPlus删除语句之逻辑删除
    1、逻辑删除接下来要讲解是删除中比较重要的一个操作,逻辑删除,先来分析下问题:这是一个员工和其所签的合同表,关系是一个员工可以签多个合同,是一个一(员工)对多(合同)的......