java 身份证号 校验
时间: 2023-08-31 18:07:20 浏览: 89
身份证号校验是一个常见的需求,可以通过以下 Java 代码来实现:
```java
public class IDValidator {
private static final int[] WEIGHTS = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};
private static final char[] CHECK_DIGITS = {'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'};
public static boolean validate(String idCard) {
if (idCard == null || idCard.length() != 18) {
return false;
}
char[] digits = idCard.toCharArray();
int sum = 0;
for (int i = 0; i < 17; i++) {
if (!Character.isDigit(digits[i])) {
return false;
}
sum += (digits[i] - '0') * WEIGHTS[i];
}
int checkDigitIndex = sum % 11;
char checkDigit = CHECK_DIGITS[checkDigitIndex];
return checkDigit == digits[17];
}
}
```
你可以使用 `IDCardValidator.validate(idCard)` 方法来校验身份证号码 `idCard` 是否合法。如果返回 `true`,则表示校验通过;如果返回 `false`,则表示校验不通过。