java 通过判断身份证号码匹配省市县名称

Just_Esme

关注

阅读 25

2024-08-13

要通过身份证号码判断省市县名称,需要使用身份证号码的前六位来确定所在的行政区域。这些前六位是身份证号码中的地区码。以下是一个示例代码,它展示了如何通过身份证号码获取省市县名称:

import java.util.HashMap;
import java.util.Map;

public class IDCardUtils {

    // 模拟的地区码数据
    private static final Map<String, String> REGION_CODES = new HashMap<>();
    static {
        REGION_CODES.put("110000", "北京市");
        REGION_CODES.put("110100", "北京市-市辖区");
        REGION_CODES.put("110101", "北京市-东城区");
        REGION_CODES.put("110102", "北京市-西城区");
        // 继续添加其他区域码和名称
    }

    public static void main(String[] args) {
        String idNumber = "11010119900101001X"; // 示例身份证号码
        String region = getRegionName(idNumber);
        System.out.println("地区: " + region);
    }

    public static String getRegionName(String idNumber) {
        if (idNumber == null || idNumber.length() < 6) {
            return "无效身份证号码";
        }
        String regionCode = idNumber.substring(0, 6);
        return REGION_CODES.getOrDefault(regionCode, "未知地区");
    }
}

说明:

  1. REGION_CODES: 模拟的地区码数据,你需要用实际的完整数据替换这个示例数据。
  2. getRegionName: 从身份证号码提取前六位,然后通过这个区域码查询对应的省市县名称。

加上男女判断

import java.util.HashMap;
import java.util.Map;

public class IDCardUtils {

    // 模拟的地区码数据
    private static final Map<String, String> REGION_CODES = new HashMap<>();
    static {
        REGION_CODES.put("110000", "北京市");
        REGION_CODES.put("110100", "北京市-市辖区");
        REGION_CODES.put("110101", "北京市-东城区");
        REGION_CODES.put("110102", "北京市-西城区");
        // 继续添加其他区域码和名称
    }

    public static void main(String[] args) {
        String idNumber = "11010119900101001X"; // 示例身份证号码
        String region = getRegionName(idNumber);
        String gender = getGender(idNumber);
        System.out.println("地区: " + region);
        System.out.println("性别: " + gender);
    }

    /**
     * 根据身份证号码获取地区名称
     * @param idNumber 身份证号码
     * @return 地区名称
     */
    public static String getRegionName(String idNumber) {
        if (idNumber == null || idNumber.length() < 6) {
            return "无效身份证号码";
        }
        String regionCode = idNumber.substring(0, 6);
        return REGION_CODES.getOrDefault(regionCode, "未知地区");
    }

    /**
     * 根据身份证号码获取性别
     * @param idNumber 身份证号码
     * @return 性别
     */
    public static String getGender(String idNumber) {
        if (idNumber == null || idNumber.length() < 17) {
            return "无效身份证号码";
        }
        // 身份证号码第17位是性别位,奇数表示男性,偶数表示女性
        char genderChar = idNumber.charAt(16);
        if (genderChar % 2 == 0) {
            return "女性";
        } else {
            return "男性";
        }
    }
}

精彩评论(0)

0 0 举报