我在下面用以下代码表示西班牙的地址。让我知道是否有更好的方法可以做到这一点,或者是否已经有一个处理i18n地址的开源库。
/**
* From <a href="http://www.addressdoctor.com/en/countries_data/sampleaddress.asp?code=ESP%2BSpain}">Address doctor</a>
* <p>
* Format
* </p>
*
* <pre>
* Line 1: RECIPIENT
* Line 2: [URBANISATION]
* Line 3: STREET_TYPE STREET_NAME, HOUSE_NUMBER [FLOOR] [APARTMENT]
* Line 4: POSTAL_CODE LOCALITY
* Line 5: SPAIN
* </pre>
*
* Example
*
* <pre>
* Isidre Varo
* Avenida de Canillejas a Vicalvaro 82 piso 4
* 28022 MADRID
* SPAIN
* </pre>
*
* @author Aravind R Yarram
*
*/
public interface SpainAddress
{
/**
* E.g road types would be Calle (Street)
* <p>
* TODO may be an enumeration
* </p>
*/
String getStreetType();
String getStreetName();
String getHouseNumber();
String getFloorNumber();
/**
* <p>
* TODO need validation
* </p>
*/
String getPostalCode();
/**
* Poblacion
*/
String getCity();
/**
* Also known as province
*/
String getLocality();
}
答案 0 :(得分:3)
在马德里生活并且能说流利的西班牙语,我可以提供一些意见。
我不会将街道类型和名称分开,因为街道类型通常是名称的一部分,或者可能缺失(例如Gran Via)。任何解析算法都会出错或者需要一个巨大的异常表(并且它仍然会出错)。
在地方之后为省提供一个字段。这具有欺骗性,因为对于大城市而言,省份经常被省略,特别是在城市名称和省名相同的情况下。这是一个地方和省份不同的例子:
Calle Alcala, 45
28192 El Berrueco
Madrid
Spain