一个身份证地址解析出省市区的工具类 Published on May 25, 2023 in 随笔 with 0 comment ```java package com.javalaoniu.tool.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; /** * 身份证地址提取省市区工具类 */ public class AddressResolutionUtil { /** * 根据身份证地址提取省市区工具类 * * @param address * @return */ 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号")); } } ``` 本文由 admin 创作,采用 知识共享署名4.0 国际许可协议进行许可。本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。