Java编写程序判断身份证是否合法

您所在的位置:网站首页 该用户的18位身份证在系统中已存在怎么解决 Java编写程序判断身份证是否合法

Java编写程序判断身份证是否合法

2024-07-17 20:38:25| 来源: 网络整理| 查看: 265

Java编写程序判断身份证是否合法 需求

我国的居民身份证号码,由十七位数字本体码和一位数字校验码组成。定义方法判断用户输入的身份证号码是否合法,并在主方法中调用方法测试结果。规则为:号码为18位,不能以数字0开头,前17位只可以是数字,最后一位可以是数字或者大写字母X。

设计思路

使用键盘录入一个身份证号字符串,定义一个方法接收。查看String类的相关API,遍历该字符串进行判断。

代码实现 package com.itheima.APITest.Test06; import java.util.Scanner; /* 我国的居民身份证号码,由由十七位数字本体码和一位数字校验码组成。 请定义方法判断用户输入的身份证号码是否合法, 并在主方法中调用方法测试结果。 规则为:号码为18位,不能以数字0开头, 前17位只可以是数字, 最后一位可以是数字或者大写字母X。 */ public class Demo { public static void main(String[] args) { //创建Scanne对象,接收键盘录入 //public final class Scanner //一个简单的文本扫描器,可以使用正则表达式解析原始类型和字符串。 //public final class System //System类包含几个有用的类字段和方法。 它不能被实例化。 //public static final InputStream in //“标准”输入流。 该流已经打开,准备提供输入数据。 通常,该流对应于键盘输入或由主机环境或用户指定的另一个输入源。 Scanner sc = new Scanner(System.in); //public static final PrintStream out //“标准”输出流。 此流已经打开并准备好接受输出数据。 通常,此流对应于显示输出或由主机环境或用户指定的另一个输出目标。 //public class PrintStream // PrintStream将功能添加到另一个输出流,即能够方便地打印各种数据值的表示。 还提供了另外两个功能。 //public void println​() //通过写入行分隔符字符串来终止当前行。 行分隔符字符串由系统属性line.separator定义,并不一定是单个换行符( '\n' )。 System.out.println("请输入一个身份证号:"); //接收键盘录入的字符串 //public String nextLine​() //将此扫描仪推进到当前行并返回跳过的输入。 此方法返回当前行的其余部分,不包括末尾的任何行分隔符。 该位置设置为下一行的开头。 String id = sc.nextLine(); //调用判断身份证号码的方法 boolean b = judgeIDNumber(id); //输出结果 System.out.println(b); } public static boolean judgeIDNumber(String s) { //判断长度不是18,直接返回false //public int length​() //返回此字符串的长度。 长度等于字符串中的数字Unicode code units 。 if (s.length() != 18) { return false; } else { //判断开头数字为0,直接false //public char charAt​(int index) //返回指定索引处的char值。 指数范围从0到length() - 1 。 序列的第一个char值是索引0 ,下一个索引为1 ,依此类推,就像数组索引一样。 if (s.charAt(0) == '0') { return false; } //遍历字符串 for (int i = 0; i //如果字符在数字之外直接false if (s.charAt(i) '9') { return false; } } else { //第十七位如果不是数字或者大写字母X返回false if (s.charAt(i) '9') { if (s.charAt(i) != 'X') { return false; } } } } } //以上条件都不满足时返回true,是合法的身份证号 return true; } } 代码实现2

为了程序的健壮性,我们需要对传递的参数是否为空参进行判断,判断字符串的开头是否为数字0,我们有相应的API,基于以上,对程序进行二次优化。

package com.itheima.APITest.Test06; import java.util.Scanner; /* 为了程序的健壮性,对空参进行判断。 判断字符串的开头有相应的方法,对程序结构进行优化。 */ public class Demo02 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入一个身份证号:"); String id = sc.nextLine(); System.out.println(checkID(id)); } public static boolean checkID(String s) { //空参判断,保证程序健壮性 if (s == null) { return false; } //判断长度 if (s.length() != 18) { return false; } //public boolean startsWith​(String prefix) //测试此字符串是否以指定的前缀开头。 if (s.startsWith("0")) { return false; } //遍历字符串 for (int i = 0; i //优化程序,改变逻辑判断 if (ch '9' && ch != 'X') { return false; } } else {//其他位的校验 if (ch '9') { return false; } } } //以上都不符合,返回true return true; } } 效果展示

在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


    图片新闻

    实验室药品柜的特性有哪些
    实验室药品柜是实验室家具的重要组成部分之一,主要
    小学科学实验中有哪些教学
    计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
    实验室各种仪器原理动图讲
    1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
    高中化学常见仪器及实验装
    1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
    微生物操作主要设备和器具
    今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
    浅谈通风柜使用基本常识
     众所周知,通风柜功能中最主要的就是排气功能。在

    专题文章

      CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭