地址解析(仅供参考与学习)<Java>

本文介绍了Java中进行地址解析的步骤,包括定义公用对象、检查省市区关键字、正则表达式分割地址以及去重处理,旨在提供一个地址解析的实现方案。
摘要由CSDN通过智能技术生成
地址解析步骤如下:

1、检查是否存在省份
2、如果存在省份,将会检查省份是否明确标注省,自治区,市(直辖市),特别行政区的关键字,如果不存在,将会自动拼接上,便于后边正则匹配
3、检查市级地区是否明确标注关键字,如果没有标注,将会自动拼接上,如果市级地址中包含州,盟,自治州等特殊情况的市级地区,将不会进行自动拼接(注:由于给出的公共的市级地区没有明确区分是市还是州或者是县,因此如果没有在地址中明确,将会统一拼接成市
4、通过正则表达式将重构后的地址进行分割

待分割地址:四川成都高新区xxx地址
分割后结果:
1、四川省
2,成都市
3,高新区
4,xxx地址

5、将地址中存在重复的部分进行去重,保留唯一的省市区地址

第一,定义公用的对象,在各个不同的步骤中会相应的使用到
    /**
     * 省级后缀
     */
    private static String[] suffixs = {"省","市","自治区","特别行政区"}; 
    /**
     * 中国34个省,直辖市,自治区,特别行政区
     */
    @SuppressWarnings("serial")
	private static Map<Integer,String[]> maps = new HashMap<Integer,String[]>(){
  {
		/**
		 * 中国的23个省
		 */
		put(1, new String[]{"河北","山西","辽宁","吉林","黑龙江","江苏","浙江","安徽","福建","江西","山东","河南","湖北","湖南","广东","海南","四川","贵州","云南","陕西","甘肃","青海","台湾"});
		/**
		 * 中国的4个直辖市
		 */
		put(2, new String[]{"北京","天津","上海","重庆"});
		/**
		 * 中国的5个自治区
		 */
		put(3, new String[]{"广西","内蒙古","西藏","宁夏","新疆"});
		/**
		 * 中国的2个特别行政区
		 */
		put(4, new String[]{"香港","澳门"});
		/**
		 * 中国的市
		 */
		put(5, new String[]{"石家庄","唐山","秦皇岛","邯郸","邢台","保定","张家口","承德","沧州","廊坊","衡水",
    			"太原","大同","阳泉","长治","晋城","朔州","晋中","运城","忻州","临汾","吕梁",
    			"呼和浩特","包头","乌海","赤峰","通辽","鄂尔多斯","呼伦贝尔","巴彦淖尔","乌兰察布","兴安","锡林郭勒","阿拉善",
    			"沈阳","大连","鞍山","抚顺","本溪","丹东","锦州","营口","阜新","辽阳","盘锦","铁岭","朝阳","葫芦岛",
    			"长春","吉林","四平","辽源","通化","白山","松原","白城","延边",
    			"哈尔滨","齐齐哈尔","鸡西","鹤岗","双鸭山","大庆","伊春","佳木斯","七台河","牡丹江","黑河","绥化","大兴安岭",
    			"南京","无锡","徐州","常州","苏州","南通","连云港","淮安","盐城","扬州","镇江","泰州","宿迁",
    			"杭州","宁波","温州","嘉兴","湖州","绍兴","金华","衢州","舟山","台州","丽水",
    			"合肥","芜湖","蚌埠","淮南","马鞍山","淮北","铜陵","安庆","黄山","滁州","阜阳","宿州","巢湖","六安","亳州","池州","宣城",
    			"福州","厦门","莆田","三明","泉州","漳州","南平","龙岩","宁德",
    			"南昌","景德镇","萍乡","九江","新余","鹰潭","赣州","吉安","宜春","抚州","上饶",
    			"济南","青岛","淄博","枣庄","东营","烟台","潍坊","威海","济宁","泰安","日照","莱芜","临沂","德州","聊城","滨州","菏泽",
    			"郑州","开封","洛阳","平顶山","焦作","鹤壁","新乡","安阳","濮阳","许昌","漯河","三门峡","南阳","商丘","信阳","周口","驻马店",
    			"武汉","黄石","襄樊","十堰","荆州","宜昌","荆门","鄂州","孝感","黄冈","咸宁","随州","恩施",
    			"长沙","株洲","湘潭","衡阳","邵阳","岳阳","常德","张家界","益阳","郴州","永州","怀化","娄底","湘西",
    			"广州","深圳","珠海","汕头","韶关","佛山","江门","湛江","茂名","肇庆","惠州","梅州","汕尾","河源","阳江","清远","东莞","中山","潮州","揭阳","云浮",
    			"南宁","柳州","桂林","梧州","北海","防城港","钦州","贵港","玉林",
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值