Java根据身份证号码提取出省市区,JSON数据格式

package com.rdes.talents.utils;

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @Author: 更多实用源码  www.cx1314.cn
 * @Date: 2023/9/7 15:22
 * @Description:  根据身份证号码所在地址提取出省市区
 */
public class AddressResolutionUtil {

    public static List> addressResolution(String address) {
        String regex = "(?[^省]+自治区|.*?省|.*?行政区|.*?市)(?[^市]+自治州|.*?地区|.*?行政单位|.+盟|市辖区|.*?市|.*?县)(?[^县]+县|.+区|.+市|.+旗|.+海域|.+岛)?(?[^区]+区|.+镇)?(?.*)";
        Matcher m = Pattern.compile(regex).matcher(address);
        String province = null, city = null, district = null, town = null, detail = null;
        List> table = new ArrayList>();
        Map row = null;
        while (m.find()) {
            row = new LinkedHashMap();
            province = m.group("province");
            row.put("province", province == null ? "" : province.trim());
            city = m.group("city");
            row.put("city", city == null ? "" : city.trim());
            district = m.group("district");
            row.put("district", district == null ? "" : district.trim());
            town = m.group("town");
            row.put("town", town == null ? "" : town.trim());
            detail = m.group("detail");
            row.put("detail", detail == null ? "" : detail.trim());
            table.add(row);
        }
        return table;
    }

    public static void main(String[] args) {
        System.out.println(addressResolution("广东省深圳市福田区梅林街道办事处国际金融科技大厦"));
        System.out.println(addressResolution("山东省德州市禹城市伦镇堂子街村235号"));
        System.out.println(addressResolution("更多精品IT资源 www.cx1314.cn     "));

System.out.println(addressResolution("身份证匹配户籍地址JSON数据下载地址: www.cx1314.cn "));


}

你可能感兴趣的:(工具类,Java,省市区,三级联动,JSON)