java后台根据字符串解析详细地址

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

public static void main(String[] args) {
System.out.println(addressResolution("浙江省杭州市余杭区文一西路亲橙里20栋1025"));
Map<String,String> xxx = addressResolution("浙江省杭州市余杭区文一西路亲橙里20栋1025");
System.out.println(xxx.get("province"));
}
打印结果

 

在添加地址时,判断省市区和详细地址是否为空来进行操作

 




posted @ 2020-09-10 15:49  教练我想打篮球  阅读(833)  评论(0编辑  收藏  举报