A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yuanchao 中级黑马   /  2016-10-6 14:17  /  1073 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.util.Scanner;

public class Test08_身份证的生日 {

        /**
         * 模拟审核身份证的过程,按照以下要求实现相关代码(不一定要用正则表达式)
         * a. 提示用户在控制台输入身份证号码,用一个字符串对其进行保存
         * b. 判断该身份证号码尾数是否是18位或者16位
         * c. 判断该身份证号除最后一位外,是否都是数字
         * d. 将身份证号中的生日信息获取出来并且打印到控制台上。比如:身份证号是"410124199008010231"
         *                                                                                         截取的生日应为(19900801)
         */
        public static void main(String[] args) {
                //提示用户输入身份证号码
                Scanner sc = new Scanner(System.in);
                System.out.print("请输入身份证号码:");
                String idCard = sc.nextLine();
                String regex16 = "\\d{15}[\\w&&[^_]]";
//                String regex18 = "\\d{17}[\\w&&[^_]]";
//                String regex18 = "\\d{17}[\\.]";                                        //为何不能用点??
                String regex18 = "\\d{17}[.]";                                        //为何不能用点??
                //412725199411265017
                if (idCard.matches(regex16) || idCard.matches(regex18)) {
                        System.out.println(idCard.substring(6, 14));
                }else {
                        System.out.println("身份证号码错误!!!");
                }
        }

}

1 个回复

正序浏览
楼主用心了,赞一个!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马