bgu*_*uiz 1 java string parsing street-address
寻找一种快速而肮脏的方式将澳大利亚街道地址解析为其部分:
3A/45 Jindabyne Rd, Oakleigh, VIC 3166
应该拆分为:
"3A",45,"Jindabyne Rd" "Oakleigh","VIC",3166
街道名称可以包含多个单词,街道名称也可以.
请参阅:将Steet地址解析为组件
必须是Java,不能发出http请求(例如Web API).
编辑:假设始终遵循指定的格式.我没有问题,向用户发送错误格式化的字符串,并告诉他们遵循格式(我在上面已经描述过).
老实说,你在这里为自己设定了一个相当Sisyphean的挑战,我不确定它是否值得.除非您的数据来自已知来源,并且具有非常明确的格式,否则您将获得完全无用的数据.如果您正在处理自由文本,那么人们会以您不相信的方式搞砸他们的地址.
你真的想尝试(自己)来分析每一个可能的组合Richmond, Victoria, 3121,并Richmond 3121 VIC与Richmond VIC, 3121等?这只是郊区的粒度!
地址甚至更糟.当然,大多数人会7/21 Smith St选择一个单位,或者29-33 Jones St是一个跨越多个街道号码的位置,但人们并不一致.为1-5 Brown St单元1在5号,或者在街头跨越#1至#5的位置?是7A一个单独的细分街道地址,还是#7的A单元?
地址匹配不是一个简单的问题,如果你的数据集是最终用户输入的自由文本,我真的不会打扰你,除非你有大量的数据或不关心准确性那么多(或者,有大量的时间进行手动清理).如果没有,请将其交给一台为您工作的软件.
澳大利亚邮政有一个名为邮政地址文件(PAF)的东西,其中包含澳大利亚的每个有效送货地点.有许多软件库可以为您进行解析+匹配,并为您提供明确的答案(包括所有单独的地址组件,如您所愿)或提供可供选择的列表供您选择如果地址不存在或含糊不清.我所知道的一个例子是QAS Batch(不以任何方式与他们联系,过去评估他们的软件但最终没有使用它),但这只是一个例子; 还有一份可通过PAF网站访问的其他人列表.
不能强烈推荐你不要浪费你的时间,除非它是一个微不足道的规模.
如果是的话,嘿,是的,正则表达式.
| 归档时间: |
|
| 查看次数: |
3734 次 |
| 最近记录: |