Java 身份证号码格式验证
时间: 2024-12-12 13:24:55 浏览: 56
在Java中,身份证号码验证通常涉及到正则表达式来检查输入字符串是否符合中国大陆居民身份证的格式。身份证号码由18位数字组成,分为三部分:前6位代表地区码,接下来8位为出生日期码,最后4位为顺序码加校验码。
以下是简单的Java代码示例,用于验证身份证号码的格式:
```java
import java.util.regex.Pattern;
public class IDCardValidator {
private static final String idPattern = "^\\d{15}$"; // 正常15位数字的身份证
private static final String idFullPattern = "^(\\d{15}|\\d{18})$"; // 包括18位带X校验码的身份证
public static boolean isValid(String id) {
if (id.matches(idPattern)) {
return true;
} else if (id.matches(idFullPattern)) {
int sum = 0;
for (int i = 1; i <= 17; i++) {
sum += i * Character.getNumericValue(id.charAt(i));
}
int remainder = sum % 11;
char checkCode = (remainder == 0 ? '1' : (char) (11 - remainder));
return id.charAt(17) == checkCode || (id.length() == 18 && id.charAt(17) == 'X' && id.charAt(16) == checkCode);
}
return false;
}
public static void main(String[] args) {
System.out.println(isValid("123456789012345678")); // 输出true or false
}
}
```
在这个例子中,`isValid`方法会检查身份证号码是否匹配给定的模式。如果不符合规定长度,或者校验码计算错误,它将返回false。
阅读全文
相关推荐
















