栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java解析省份城市

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java解析省份城市

Java解析省份城市
  • json文件:

ps:地址可能不全 仅供参考

	public String formatAddr(String address){


		if (address == null){
			return null;
		}

		//匹配特殊字符
		String regEx = "[ _`~!@#$%^&*()+=|{}':;',\[\].<>/?~!@#¥%……&*-()——+|{}【】‘;:”“’。,、?]|n|r|t";
		Pattern p = Pattern.compile(regEx);
		Matcher m1 = p.matcher(address);

		//处理特殊字符
		if (m1.find()){
			for (char c : regEx.toCharArray()) {
				String value = String.valueOf(c);
				if (address.contains(value)){
					address = address.replace(value,"");
				}
			}
		}
		String regex="(?[^省]+自治区|.*?省|.*?行政区|.*?市)(?[^市]+自治州|.*?地区|.*?行政单位|.+盟|市辖区|.*?市|.*?县)";
		Matcher m=Pattern.compile(regex).matcher(address);
		String province=null,city=null;
		while(m.find()){
			province=m.group("province");
			city=m.group("city");
		}

		if (province == null || city == null){
			return null;
		}

		JSONArray jsonArray = readJson();

		for (Object obj: jsonArray) {
			JSONObject jsonObject = JSONUtil.parseObj(obj);
			String label = jsonObject.getStr("label");
			if (label.equals(province)){
				//如果省份一致则对比城市是否一致
				JSONArray childrens = jsonObject.getJSONArray("children");
				if (childrens != null){
					for (Object children : childrens) {
						JSONObject cityObj = JSONUtil.parseObj(children);
						if (cityObj.getStr("label").equals(city)){
							return province + "-" + city;
						}
					}
				}
			}
		}

		return null;

	}

	public static JSONArray readJson(){

		cn.hutool.core.io.resource.ClassPathResource classPathResource = new cn.hutool.core.io.resource.ClassPathResource("city.json");
		InputStream inputStream = classPathResource.getStream();
		try {
			Reader reader = new InputStreamReader(inputStream,"UTF-8");
			int ch = 0;
			StringBuffer sb = new StringBuffer();
			while ((ch = reader.read()) != -1) {
				sb.append((char) ch);
			}
			String toString = sb.toString();
			JSONArray jsonArray = JSONUtil.parseArray(toString);
			return jsonArray;
		} catch (Exception e) {
			e.printStackTrace();
		}

		return null;
	}
json文件:

将文件放在静态目录下即可
链接: https://pan.baidu.com/s/1dGOngPMp7jZas9OtSeGPPQ 提取码: r89j

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/345367.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号