以下是一个简单的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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录