gpt4 book ai didi

java - 如何将 java String 转换为邮寄地址对象?

转载 作者:行者123 更新时间:2023-11-30 09:01:29 24 4
gpt4 key购买 nike

作为输入,我得到一个字符串形式的地址。它可能会说类似 "123 Fake Street\nLos Angeles, CA 99988"。我如何将其转换为具有如下字段的对象:

Address1
Address2
City
State
Zip Code

或者类似的东西?如果有一个 java 库可以做到这一点,那就更好了。

不幸的是,我无法选择字符串作为输入。这是我正在尝试实现的规范的一部分。

输入的结构不会很好,因此代码需要非常容错。此外,地址可能来自世界各地,但 100 个中有 99 个可能在美国。

最佳答案

您可以使用 JGeocoder

public static void main(String[] args) {
Map<AddressComponent, String> parsedAddr = AddressParser.parseAddress("Google Inc, 1600 Amphitheatre Parkway, Mountain View, CA 94043");
System.out.println(parsedAddr);

Map<AddressComponent, String> normalizedAddr = AddressStandardizer.normalizeParsedAddress(parsedAddr);
System.out.println(normalizedAddr);
}

输出将是:

{street=Amphitheatre, city=Mountain View, number=1600, zip=94043, state=CA, name=Google Inc, type=Parkway}
{street=AMPHITHEATRE, city=MOUNTAIN VIEW, number=1600, zip=94043, state=CA, name=GOOGLE INC, type=PKWY}

还有一个图书馆International Address Parser你可以检查它的试用版。它也支持国家/地区。

AddressParser addressParser = AddressParser.getInstance();
AddressStandardizer standardizer = AddressStandardizer.getInstance();//if enabled
AddressFormater formater = AddressFormater.getInstance();

String rawAddress = "101 Avenue des Champs-Elysées 75008 Paris";

//you can try to detect the country
CountryDetector detector = CountryDetector.getInstance();
String countryCode = detector.getCountryCode("7580 Commerce Center Dr ALABAMA");
System.out.println("detected country=" + countryCode);

另外,请检查Implemented Countries在这个库中。

干杯!!

关于java - 如何将 java String 转换为邮寄地址对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26392299/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com