1.居民身份证号码,由17位数字本体码,和1位数字校验码组成 2.判断用户输入的身份证号码是否合法 规则为:号码为18位,不能以0开头,前17位只可以是数字,最后一位可以是数字或‘X‘

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'或者数字,您的输入有误,请重新输入!");
        }
    }
}

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值