实测:45 条脏地址,用 address-parse 做 Java 收货地址解析要写几行代码?
实测45 条脏地址用 address-parse 做 Java 收货地址解析要写几行代码【免费下载链接】address-parseJava 版智能解析收货地址项目地址: https://gitcode.com/gh_mirrors/addr/address-parse凌晨一点我盯着屏幕上那批导出的订单数据发呆。同一个字段里收货人: 杨燕艳和所在地区: 广东省深圳市龙岗区挤在一起手机号一会儿是131 1111 1111一会儿是86-13311111111还有人把电話写成了繁体。手写正则改了第七版总有几个样例跑偏同事补刀要不接个第三方 API——然后被预算两个字噎了回去。这就是大多数做电商、物流、外卖系统的后端工程师都撞过的墙收货地址解析。今天我想跟你分享的是一个叫address-parse的 Java 智能地址解析库。它把姓名、手机号、省市区、详细地址从混乱字符串里一次性拆干净本地运行、毫秒级返回、完全免费。下面我用它跑一遍真实脏数据你看看效果。先看数据底座address-parse 凭什么认识全国省市区动手之前先弄明白它为什么认识地址。address-parse 的核心是一份内置的行政区划数据china-area.json覆盖了 34 个省级行政区、333 个地级市和 2844 个县级区域。每个节点的结构长这样{ areaCode: 110101000000, cityCode: 010, level: 2, name: 东城区, parentCode: 110100000000, shortName: 东城, zipCode: 100000 }关键信息有四个level表示层级0 省、1 市、2 区县正好对应源码里的 AreaEnum.javaparentCode通过 TreeUtils.java 把扁平 JSON 拼成树省-市-区县的关系一目了然shortName是简称用来匹配深圳这种省略写法zipCode顺带把邮编也带出来了。库启动时会把这棵树加载进内存从日志能看到初始化耗时——这为后面的预热埋了个伏笔。第一步跑通Java 地址解析的最简调用代码打开你的 IDEA新建一个类先试试最基础的用法。这段代码解决把一行地址拆成结构化字段的问题import com.neo.address.parse.AddressParse; import com.neo.address.parse.ParseResult; import java.util.List; public class QuickStart { public static void main(String[] args) { String raw 太阳鲜鲜 盐田区山海四季城F栋17A13111111111; ListParseResult results AddressParse.parse(raw); for (ParseResult r : results) { System.out.println(r.format()); } } }把项目编译后跑起来控制台输出是这样的姓名太阳鲜鲜电话手机13111111111省广东省市深圳市区盐田区详细地址山海四季城F栋17A类型AREA入口就是静态方法AddressParse.parse(String)一行调用不 new、不配置返回的 ParseResult 自带format()方便调试时直接打印姓名、手机号、省、市、区、详细地址各归各位全部分离干净。读懂 ParseResult每个字段分别存了什么ParseResult的字段值得花 30 秒记一下后面取数据全靠它字段含义示例name收货人姓名太阳鲜鲜mobile手机号含 86 前缀13111111111phone座机号0755-22107333province/city/area省 / 市 / 区县广东省 / 深圳市 / 盐田区detail详细地址山海四季城F栋17AzipCode邮政编码100000type命中层级省/市/区AREA值得注意的是一次解析可能返回多条结果。原因藏在 AddressParse.java 的parseArea里它先按省正向匹配再按市、按区县逆向匹配三种路径各产生一条候选。比如深圳市龙岗区既会被市路径命中也会被区路径命中。所以下一步我们要做的就是学会从候选里挑最优解。进阶示例批量解析 45 条真实订单地址的完整流程与其一个个试不如直接把项目里 AddressParseTest.java 的 45 条真实脏数据拿来跑。这段代码解决批量解析 从多条候选中挑最优的问题import com.neo.address.parse.AddressParse; import com.neo.address.parse.AreaEnum; import com.neo.address.parse.ParseResult; import com.google.common.collect.Lists; import java.util.List; public class BatchDemo { // 挑选最优结果优先区县级其次市级最后省级 private static ParseResult pickBest(ListParseResult results) { ParseResult best null; for (ParseResult r : results) { if (best null || r.getType().getCode() best.getType().getCode()) { best r; } } return best; } public static void main(String[] args) { ListString orders Lists.newArrayList( 谢先生深圳市龙岗区南湾街道尚峰花园4C2231 13111111111, 收货人: 杨燕艳\n手机号码: 13111111111\n所在地区: 广东省深圳市龙岗区龙岗街道, 湛江市廉江市车板镇人才市场0755-22107333.曹建林 邮编713200, 何花菊86-13311111111辽宁省 盘锦市 盘山县 东郭镇 000000 ); for (String raw : orders) { ParseResult r pickBest(AddressParse.parse(raw)); System.out.printf(原地址: %s%n, raw); System.out.printf(- 姓名%s 手机%s 电话%s 省%s 市%s 区%s 邮编%s%n, r.getName(), r.getMobile(), r.getPhone(), r.getProvince(), r.getCity(), r.getArea(), r.getZipCode()); System.out.printf(- 详细地址: %s%n%n, r.getDetail()); } } }AreaEnum里PROVINCE0、CITY1、DISTRICT2code 越大粒度越细直接当优先级用换行、繁体电話、86-前缀手机号、邮编都被cleanAddress和正则预处理过了你不用自己写清洗逻辑项目 README 里的测试数据显示45 条地址批量跑完约 112ms单条毫秒级高并发场景也扛得住。避坑清单这些坑我帮你踩过了用这个库跑了几轮真实数据有几个点必须提前告诉你1. 多条候选结果要自己排序去重。这是最容易忽略的。同一个输入可能同时出 AREA、CITY、PROVINCE 三条直接存库会重复。上面pickBest的按 type 优先级挑选思路可以直接复用。2. 同名区县存在误匹配风险。比如深圳市南山区在按区逆向解析时可能被匹配成黑龙江鹤岗市的南山区。所以当输入自带省名时优先取省路径的结果多一个来源交叉验证更稳。3. 初始化有一次性成本。静态代码块加载整棵行政区划树日志显示约 440ms。生产环境建议应用启动时预热一次比如 Spring 的PostConstruct里调一次parse别等第一个请求进来才初始化。4. 想扩展关键词过滤改一处就行。AddressParse.EXCLUDE_KEYS是公开的静态列表默认包含收货人、所在地区、联系电话等冗余词。如果你们业务里还有门店自提代收点这类词往里 add 就行下次解析自动生效。5. 数据文件路径是固定的。目前读取的是 classpath 下的/address-parse/china-area.json行政区划有调整时替换这个 JSON 即可无需改代码。三种方案的量化对比正则、第三方 API 与本地解析库聊到最后用一张表说清楚它值不值得用对比维度手写正则第三方 APIaddress-parse省市区识别需要维护海量词表开箱即用内置全量数据姓名/电话分离边界情况多支持支持调用成本免费按次计费免费网络依赖无有可能超时无本地运行单条耗时取决于正则质量百毫秒级网络毫秒级维护成本高天天补正则中跟版本低换 JSON 即可它的定位很清晰在不想为解析付 API 费用、又不愿维护正则词表的场景里本地化解析是性价比最高的中间路线。立即动手克隆仓库并运行内置测试用例现在就可以上手按这个顺序走克隆仓库到本地git clone https://gitcode.com/gh_mirrors/addr/address-parse用mvn compile编译依赖Guava、Hutool、commons-lang3 等都在 pom.xml 里配好了不用自己折腾直接运行 AddressParseTest.java 的main方法看 45 条脏地址的完整解析效果然后把你手头最头疼的那批真实地址丢进去验证下准确率需要扩展时改EXCLUDE_KEYS、换china-area.json源码注释都很清楚。如果你也在为收货地址解析头疼与其继续堆正则不如花十分钟把这个库跑起来。它解决的不只是拆字段这一个动作而是把地址标准化这件事从日常维护里彻底摘了出去。试试看你可能会和我一样把它写进工具集里再也没拿出来过。【免费下载链接】address-parseJava 版智能解析收货地址项目地址: https://gitcode.com/gh_mirrors/addr/address-parse创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Anthropic Model 2前瞻:从API集成到风险应对的开发者指南

Anthropic Model 2前瞻:从API集成到风险应对的开发者指南

这次我们来看一个关于 Anthropic 风险报告提及新模型 Model 2 的技术话题。对于关注 AI 大模型前沿动态的开发者来说,Anthropic 的任何新动向都值得留意,尤其是涉及下一代模型架构、安全评估和潜在部署方式的信息。本文不会空谈概念,而是聚焦…

2026/8/18 12:18:37 阅读更多 →
大厂网络架构标配:汇总路由如何保障网络稳定与高效收敛

大厂网络架构标配:汇总路由如何保障网络稳定与高效收敛

如果你是一名网络工程师,或者正在准备大厂面试,一定被问过这个问题:“为什么大厂的网络架构里,汇总路由(Route Summarization)几乎是标配?” 这个问题看似基础,但很多人的理解停留在…

2026/8/18 12:18:37 阅读更多 →
Mac Mouse Fix 快速上手指南:如何免费让普通鼠标拥有触控板级体验

Mac Mouse Fix 快速上手指南:如何免费让普通鼠标拥有触控板级体验

Mac Mouse Fix 快速上手指南:如何免费让普通鼠标拥有触控板级体验 【免费下载链接】mac-mouse-fix Mac Mouse Fix - Make Your $10 Mouse Better Than an Apple Trackpad! 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix 花十美元买来的普…

2026/8/18 12:18:37 阅读更多 →

最新新闻

flatend API网关配置指南:TOML路由、静态文件与自动HTTPS实战

flatend API网关配置指南:TOML路由、静态文件与自动HTTPS实战

flatend API网关配置指南:TOML路由、静态文件与自动HTTPS实战 【免费下载链接】flatend Quickly build microservices using p2p networking in NodeJS/Go. 项目地址: https://gitcode.com/gh_mirrors/fl/flatend 如果你正在寻找一份能快速上手的 flatend AP…

2026/8/18 13:32:19 阅读更多 →
3分钟告别“装软件才能看模型“:Revit2GLTF让BIM模型轻松跑进浏览器

3分钟告别“装软件才能看模型“:Revit2GLTF让BIM模型轻松跑进浏览器

3分钟告别"装软件才能看模型":Revit2GLTF让BIM模型轻松跑进浏览器 【免费下载链接】Revit2GLTF view demo 项目地址: https://gitcode.com/gh_mirrors/re/Revit2GLTF Revit2GLTF,这个看起来有点理工科冷门的名字,解决的是BI…

2026/8/18 13:32:19 阅读更多 →
从 Jira 工单一键创建 GitHub 分支:github-for-jira 的 Create Branch 功能全解析

从 Jira 工单一键创建 GitHub 分支:github-for-jira 的 Create Branch 功能全解析

从 Jira 工单一键创建 GitHub 分支:github-for-jira 的 Create Branch 功能全解析 【免费下载链接】github-for-jira DEPRECATED (moved to private repository) - Connect your code with your project management in Jira 项目地址: https://gitcode.com/gh_mir…

2026/8/18 13:32:19 阅读更多 →
NewGAN-Manager 使用指南:快速生成 Newgen Facepack 的 XML 配置文件

NewGAN-Manager 使用指南:快速生成 Newgen Facepack 的 XML 配置文件

NewGAN-Manager 使用指南:快速生成 Newgen Facepack 的 XML 配置文件 【免费下载链接】NewGAN-Manager A tool to generate and manage xml configs for the Newgen Facepack. 项目地址: https://gitcode.com/gh_mirrors/ne/NewGAN-Manager 那个让整个存档&q…

2026/8/18 13:32:19 阅读更多 →
直播间观众总问“你按了什么键“?这款免费开源键盘可视化工具 NohBoard 让每次按键一目了然

直播间观众总问“你按了什么键“?这款免费开源键盘可视化工具 NohBoard 让每次按键一目了然

直播间观众总问"你按了什么键"?这款免费开源键盘可视化工具 NohBoard 让每次按键一目了然 【免费下载链接】NohBoard A Keyboard Visualizer 项目地址: https://gitcode.com/gh_mirrors/no/NohBoard 如果你做过游戏直播或录过操作教程,…

2026/8/18 13:32:19 阅读更多 →
【单片机课程设计/毕业设计】基于 STM32/51 单片机的水质传感器数据采集与阈值报警装置设计 基于 STM32/51 单片机的按键可调式水质监测与自动换水系统实现(021503)

【单片机课程设计/毕业设计】基于 STM32/51 单片机的水质传感器数据采集与阈值报警装置设计 基于 STM32/51 单片机的按键可调式水质监测与自动换水系统实现(021503)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/8/18 13:31:19 阅读更多 →

日新闻

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 如果你还停留在"看网课 不停暂停 截图 …

2026/8/18 0:00:57 阅读更多 →
思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 你是不是也经历过这种时刻:设计稿里…

2026/8/18 0:00:58 阅读更多 →
华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, …

2026/8/18 0:00:59 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/18 9:15:35 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/18 9:06:28 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/18 9:04:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/17 18:54:37 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/17 18:55:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/17 18:55:55 阅读更多 →