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

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.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
说明:
  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 "男性";
        }
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.