我国的居民身份证号码,由由十七位数字本体码和一位数字校验码组成。 * 请定义方法判断用户输入的身份证号码是否合法,并在主方法中调用方法测试结果。 * 规则为:号码为18位,不能以数字0开头,前17位只可以是数字,
public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入您的身份证号码: "); String line = sc.next(); boolean flge = judgeString(line); System.out.println("您输入身份证的合法性为: " + flge); } private static boolean judgeString(String line) { //不是18位数 if (line.length() != 18) { return false; } //以0开头 if (line.charAt(0) == '0') { return false; } for (int i = 0; i < line.length(); i++) { char ch = line.charAt(i); //最后一位 if (i == line.length() - 1) { if (ch < '0' || ch > '9' && ch != 'X') { return false; } } else { //前17位数 if (ch < '0' || ch > '9') { return false; } } } //全部规则都符合 return true; }