请定义方法判断用户输入的身份证号码是否合法,并在主方法中调用方法测试结果。
* 规则为:号码为18位,不能以数字0开头,前17位只可以是数字,最后一位可以是数字或者大写字母X。

易错:循环判断前17位为数字返回true,bug:只要有一个为数字都会返回true

public class Work06Test {public static void main(String[] args) {boolean legal = isLegal();System.out.println(legal);}public static boolean isLegal(){Scanner scanner = new Scanner(System.in);System.out.println("请输入身份证号码:");String sfz = scanner.next();if (sfz.length()!=18){return false;}//身份证第一位String start = sfz.substring(0, 1);//前17位只能是数字String str = sfz.substring(0, 17);//最后一位是数字或者XString end = sfz.substring(17);//转为字符char cend = end.charAt(0);//遍历前17位身份证for (int i = 0; i <str.length() ; i++) {char c = str.charAt(i);//前17位只能位数字,不为数字返回falseif (!(c>='0' && c<='9')){return false;}}//不能以0开头,最后一位为数字或者X,满足返回trueif ( !start.equals("0") && (cend>='0'&& cend<='9'|| cend=='X')){return true;}return false;}
}

String类练习:我国的居民身份证号码,由由十七位数字本体码和一位数字校验码组成。相关推荐

  1. 我国大陆居民身份证Java验证

    关于身份证验证这一点做到身份证的编码有效性,只有是否真实存在,就算有国家居民身份证数据库也不见的真的符合事实,毕竟一人多证,或者有人无证的基本现象是存在的. 做项目中有用到用户身份证验证,那么尽最大努 ...

  2. Java 从身份证号码中获取出生日期、性别、年龄(15位和18位)

    项目场景: 提示:这次做项目的时候遇到一个工具,整理出来以后可以直接使用 问题描述:给一个String 类型的 身份证号码,需要从这串数字中获取出生日期.性别.年龄 身份证号码分为 15 位 和18 ...

  3. Java:15位或18位居民身份证号码通用校验(正则表达式、日期格式、末尾校验码)

    身份证号码校验,正则表达式校验.日期格式校验.18位身份证末尾校验码校验 前六位省市县号码变更频繁,这里就不做校验 import java.text.ParseException; import ja ...

  4. 居民身份证号码的奥秘及身份证第18位(校验码)的计算方法

    2019独角兽企业重金招聘Python工程师标准>>> 居民身份证是国家法定的证明公民个人身份的证件.为了堵塞和制止假居民身份证的流通和使用,在查验和核查居民身份证时可掌握以下几个要 ...

  5. 居民身份证号码组成规则

    第一.二位表示省(自治区.直辖市.特别行政区). 第三.四位表示市(地级市.自治州.地区.盟及直辖市所属区和县的汇总码).其中,01-20,51-70表示地级市:21-50表示地区(自治州.盟). 第 ...

  6. javascript 一些常用的正则表达式(手机号码,邮箱,整数,身份证号码,车牌号,中文,只能是字母或者数字)

    1.手机号码格式验证 function mobile(value) {return /^1[23456789]\d{9}$/.test(value) } 2.验证电子邮箱格式 function ema ...

  7. 解析身份证号码(Python版)

    解析身份证号码(Python版) 简单分析 结构 六位数字地址码 八位数字出生日期码 三位数字顺序码 一位数字校验码 代码实现 获取身份证号里的信息 获取身份证中的省份 计算身份证校验位 验证并提取信 ...

  8. PTA Python习题 身份证号码输出性别与出生日期

    题目要求 18位居民身份证号码排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码(男性使用1.3.5.7.9等奇数,女性使用2.4.6.8.0等偶数)和一位数字校验码. 从键盘 ...

  9. java 身份证号码校验工具类

    import org.slf4j.Logger; import org.slf4j.LoggerFactory;/*** 校验身份证*/ public class IdCardUtil {privat ...

  10. java验证身份证号码是否有效源代码

    转载自   java验证身份证号码是否有效源代码 1.描述 用java语言判断身份证号码是否有效,地区码.出身年月.校验码等验证算法 2.源代码 package test; import java.t ...

最新文章

  1. php session already send by ……
  2. android通知栏打开actvity,Android实现点击通知栏后,先启动应用再打开目标Activity...
  3. CentOS 安装Zabbix 手记
  4. MyEclipse安装后需要进行的配置
  5. S5PV210开发 -- 启动流程
  6. Blazor WebAssembly 3.2.0 Preview 4 如期发布
  7. 前端学习(2380):调整目录结构
  8. 【maven配置】IDEA自动生成的pom文件报错:URI Is Not Registered
  9. 因子和,因子数,1到n的因子和,1到n的因子数
  10. deferred initcalls与模块化
  11. 刷题记录 kuangbin带你飞专题一:简单搜索
  12. 线性代数 矩阵 知识技巧思维导图 [21考研上岸之旅]
  13. aix linux ftp服务器,AIX主机FTP到LINUX服务器其中的磕碰记录
  14. windows 技巧篇-解除共享文件夹占用方法,解决共享文件被占用导致不可修改问题,查看共享文件被谁占用方法
  15. 【无标题】HTMLCSS学习总结
  16. 组合数据类型(集合)
  17. 前端展示中实现批量标签动态生成
  18. 小程序集-朋友圈集赞神器
  19. OpenAI 推出漏洞赏金计划,最高奖励 2 万美元;京东零售开启 5 年来最大组织变革;​Django 4.2|极客头条
  20. 文件上传(模板导出、批量导入)

热门文章

  1. Jenkins远程命令执行漏洞(CVE-2018-1000861)
  2. magisk安装失败_crDroid OS 安装刷入教程
  3. STM32的USART3(PC10,PC11)异常,USART3_TX(PC10)持续低电平(0V)
  4. 查询瀚高数据库的创建时间
  5. 神经网络模拟化学反应?道翰天琼认知智能机器人平台API接口大脑为您揭秘。
  6. Markdown 写文档做笔记的利器
  7. 银尔达-----合宙Air724全网通4g DTU无线透传模块串口UART(TTL)+RS485核心板
  8. WiFi 802.11可调参数说明---分片阈值(fragmentation threshold)
  9. 符冉迪 计算机 培训,一种卫星云图的二次聚类分割方法专利_专利申请于2012-11-30_专利查询 - 天眼查...
  10. c语言模拟开关题目,8x16 模拟开关阵列芯片 CH446Q.PDF