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("身份证号码错误!!!");
}
}
}
|
|