用Java写一个验证18位身份证号码并判断身份证主人的性别,身份证号码的规则为: ①前17位全部由数字组成,最后一位为数字或者字符’X’,一个字符ch为数字的条件为:ch>=’0’ && ch<=’9’; ②第17位数为奇数表示性别为男,偶数表示性别为女。 输入:从键盘输入一个18位的身份证号码保存到字符数组Card中。 输出:主人性别
时间: 2023-06-18 15:07:15 浏览: 129
java实现的18位身份证格式验证算法.
以下是Java代码实现:
```java
import java.util.Scanner;
public class IDCardValidation {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入18位身份证号码:");
String idCard = scanner.nextLine();
if (isValidIDCard(idCard)) {
char gender = idCard.charAt(16);
if (gender % 2 == 1) {
System.out.println("性别为男");
} else {
System.out.println("性别为女");
}
} else {
System.out.println("身份证号码不合法");
}
}
public static boolean isValidIDCard(String idCard) {
if (idCard == null || idCard.length() != 18) {
return false;
}
for (int i = 0; i < 17; i++) {
char ch = idCard.charAt(i);
if (ch < '0' || ch > '9') {
return false;
}
}
char ch = idCard.charAt(17);
if (ch >= '0' && ch <= '9' || ch == 'X') {
return true;
} else {
return false;
}
}
}
```
运行程序后,输入18位身份证号码,程序会先判断身份证号码是否合法,如果合法再根据第17位的数字判断性别。
阅读全文