各位看看这里是出了什么问题,怎么老是说一定为true
各位看看这里是出了什么问题,怎么老是说一定为true
各位看看这里是出了什么问题,怎么老是说一定为true
id: while (true)
{
System.out.println("请输入你的身份证号码");
String idNumber = sc.next();
if (idNumber.length() != 18)//判断长度
{
System.out.println("长度须为18位");
}
else//位数为18位
{
for (int i = 0; i < idNumber.length() - 1; i++)//前17位为数字
{
char c = idNumber.charAt(i);
if (c < '0' || c > '9')
{
System.out.println("身份证号码前17位,必须都是数字");
break id;
}
}
//不能以0为开头 最为一位可以是数字,也可以是大写X或小写x
char firstC = idNumber.charAt(0);
char endC = idNumber.charAt(17);
if (firstC == 0 || (endC < '0' || endC > '9' ) || (endC != 'x' || endC != 'X'))
{
System.out.println("身份证格式有误");
System.out.println("不能以0为开头 最为一位可以是数字,也可以是大写X或小写x");
}
}
}