import java.util.Scanner;
public class Demo14 {
public static void main(String[] args) {
// 提示
System.out.println("请输入您的身份证号码:");
// 键盘录入
String id = new Scanner(System.in).nextLine();
// 调用方法
idCardTest(id);
}
public static void idCardTest(String id){
// 将输入的字符串转换为字符数组
char[] chars = id.toCharArray();
// 判断身份证是否符合要求
if (chars.length < 18 ){
System.out.println("您输入的位数不够,请输入合法的身份证号码.");
System.exit(0);
}else if (chars[0] =='0'){
System.out.println("身份证号码第一位不能为0,您的输入有误!");
System.exit(0);
}
// 循环遍历字符数组,判断字符是否前17位是否为数字
for (int i = 0; i <chars.length-1 ; i++) {
char s = chars[i];
if (s <'0' || s>'9'){
System.out.println("身份证号前17为应该为数字,您输入有误.");
System.exit(0);
}
}
// 判断最后一位字符
if(chars[chars.length-1] =='X' || chars[chars.length-1] >= '0' && chars[chars.length-1] <= '9'){
//System.out.println("身份证最后一位应该为大写字母'X'或者数字,您的输入有误,请重新输入!");
System.out.println("输入成功!");
}else {
System.out.println("身份证最后一位应该为大写字母'X'或者数字,您的输入有误,请重新输入!");
}
}
}
1.居民身份证号码,由17位数字本体码,和1位数字校验码组成 2.判断用户输入的身份证号码是否合法 规则为:号码为18位,不能以0开头,前17位只可以是数字,最后一位可以是数字或‘X‘
最新推荐文章于 2023-07-14 13:57:11 发布