地址中抓取省市区小工具(Java)

网上有很多根据正则表达式的方式,从地址中解析出省市区行政区划,
最近跟天猫对接,也碰到根据地址解析出省市区,下面用Java实现地址解析小工具,以便自己查阅!

地址解析小工具实现功能点:
1.根据输入的详细地址,可以自动解析出省市区街道四级行政区域
2.地址输入不规则地址的解析,例如“辉煌国际3号楼”可解析出“北京市海淀区上地十街辉煌国际3号楼”
3.地址输入不规则地址的解析,例如“浙江省 杭州市 西湖区 塘苗路18号 华星现代产业园”可解析出“浙江省杭州市西湖区塘苗路18号华星现代产业园”
4.解析的结果以Map<String,String>返回,例如{ province=北京市, city=北京市, area=海淀区, street=上地十街}

源码和具体的使用细则,可以到下载源码及使用说明 :

https://gitee.com/addresstool/address

package com.address.base;

import org.address.AddressCut;
import org.address.entity.Word;
import org.address.license.License;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

public class AddressCutTest {
    public static void main(String[] args) {
        new License();
        AddressCut ss = new AddressCut();
        List<Word> words;
        //正常地址
        words = ss.cutAddress("浙江省杭州市桐庐县县城白云源路1018路中艺艺锦绣锦绣名都");
        System.out.println(words);
        //城市名修正
        words = ss.cutAddress("湖北省武汉汉阳区汉阳大道10号花果山5栋1单元101户");
        System.out.println(words);
        // 省份修正 城市修正
        words = ss.cutAddress("湖北武汉汉阳区汉阳大道10号花果山5号楼1单元101室");
        System.out.println(words);
        // 城市修正
        words = ss.cutAddress("江苏省镇江市学府路花果小区");
        System.out.println(words);
        // 省份补全 城市补全
        words = ss.complete(ss.cutAddress("佛祖岭社区汉阳大道10号花果山5号楼1单元101室"));
        System.out.println(words);
        System.out.println(ss.complete(ss.cutAddress("湖北省\t武汉市\t汉阳\t汉阳-七里庙-永丰路\t永丰乡政府小区\n")));
        System.out.println(ss.complete(ss.cutAddress("湖北省 武汉市 汉阳永丰路 永丰乡政府小区")));
        System.out.println(ss.complete(ss.cutAddress("江苏省南京市江宁区上善路6号 汤山颐和府3栋一单元802室")));

        SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd 'at' HH:mm:ss z");
        Date date = new Date(System.currentTimeMillis());
        System.out.println("开始时间 : " + formatter.format(date));
        int cnt=0;
        for(int i=0;i<500;i++){
            ss.complete(ss.cutAddress("湖北省 武汉市 汉阳永丰路 永丰乡政府小区"));
        }
        System.out.println("解析地址条数 : " + cnt + "条");
        date = new Date(System.currentTimeMillis());
        System.out.println("结束时间 : " + formatter.format(date));
    }
}

打印结果

[{province:浙江省}, {city:杭州市}, {county:桐庐县}, {unknown:县城}, {road:白云源路}, {road_no:1018}, {aoi:路中艺艺锦绣锦绣名都}]
[{province:湖北省}, {city:武汉市}, {county:汉阳区}, {road:汉阳大道}, {road_no:10}, {aoi:花果山}, {building:5}, {unit:1}, {room:101}]
[{province:湖北省}, {city:武汉市}, {county:汉阳区}, {road:汉阳大道}, {road_no:10}, {aoi:花果山}, {building:5}, {unit:1}, {room:101}]
[{province:江苏省}, {city:镇江市}, {road:学府路}, {aoi:花果小区}]
[{community:佛祖岭社区}, {road:汉阳大道}, {road_no:10}, {aoi:花果山}, {building:5}, {unit:1}, {room:101}]
[{province:湖北省}, {province:湖北省}, {unknown:}, {city:武汉市}, {aoi:汉阳	汉阳-七里庙-}, {road:永丰路}, {aoi:永丰乡政府小区}]
[{province:湖北省}, {city:武汉市}, {county:汉阳区}, {road:永丰路}, {aoi:永丰乡政府小区}]
[{province:江苏省}, {city:南京市}, {county:江宁区}, {road:上善路}, {road_no:6}, {aoi:汤山颐和府}, {building:3}, {unit:1}, {room:802}]
开始时间 : 2024-06-21 at 15:30:49 CST
解析地址条数 : 0条
结束时间 : 2024-06-21 at 15:30:49 CST
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

addresstool

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值