用java 清洗身份证号码
以下是一个简单的Java代码示例,用于清洗身份证号码:
public static String cleanIDNumber(String idNumber) {
// 移除所有非数字字符
String cleaned = idNumber.replaceAll("[^0-9]", "");
// 如果长度不是18位,返回null
if (cleaned.length() != 18) {
return null;
}
// 检查校验码
int[] weights = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1};
char[] checkCodes = {'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'};
int sum = 0;
for (int i = 0; i < 17; i++) {
sum += Character.getNumericValue(cleaned.charAt(i)) * weights[i];
}
char checkCode = checkCodes[sum % 11];
if (checkCode != cleaned.charAt(17)) {
return null;
}
return cleaned;
}
该方法接受一个身份证号码作为输入,并返回清洗后的身份证号码。如果输入的号码不是18位数字或校验码无效,则返回null。
要使用该方法,请调用cleanIDNumber方法并传入要清洗的身份证号码。例如:
String idNumber = "110101200001017890";
String cleanedIDNumber = cleanIDNumber(idNumber);
if (cleanedIDNumber == null) {
System.out.println("Invalid ID number");
} else {
System.out.println("Cleaned ID number: " + cleanedIDNumber);
}
原文地址: https://www.cveoy.top/t/topic/bGf9 著作权归作者所有。请勿转载和采集!