黑马程序员技术交流社区

标题: 正则问题,求解答 [打印本页]

作者: yuanchao    时间: 2016-10-6 14:17
标题: 正则问题,求解答
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("身份证号码错误!!!");
                }
        }

}


作者: 暮雨微凉    时间: 2016-10-6 22:00
楼主用心了,赞一个!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2