要求:
1、位数必须是18位
2、前17位必须是数字
3、最后一个可以是数字或者X
public class Test03 {
public static void main(String[] args) {
/* Scanner sc = new Scanner(System.in);
System.out.println("请输入身份证");
String next = sc.next(); //用户输入的身份证号赋值给next*/
String next ="411522200010271816X";
//对18位限定
if (next.length()!=18){ //判断输入的身份证长度是否等于18,不等于就进入判断
System.out.println("请重新输入18位身份证");
}
String sub = next.substring(0, 17); //截取字符串[0,17),不包括第17位
//对前17位数字判断
try { //通过捕捉异常,来进行规范,前17位必须为数字,不能中文或者字符
Long.parseLong(sub);
}catch (NumberFormatException e){ //如果输入的为中文或者为字符,就输出以下内容,并且关闭main方法
System.out.println("前17位必须是数字");
return;
}
//对最后一位进行判断
char c = next.charAt(17); //将用户输入的第17位字符赋值给c
if((c>=48&&c<=57)||(c=='X')) { //通过阿克斯玛进行判断,必须满足这个区间的数字或者满足最后一个字符为X
System.out.println("身份证验证成功");
}else { //不满足,就会进入下面身份失败
System.out.println("身份证验证失败");
return;
}
}
}
版权声明:本文为gyfd123原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。