2010-08-02 94 views
1

我在下面編碼了代表西班牙的地址。讓我知道是否有更好的方式來做這件事,或者如果已經有一個開放源碼庫處理國際地址。用java代表西班牙地址的最佳方式

/** 
* 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

我重申了Java的語言不可知論的問題,因爲它是。但是,我沒有足夠的信譽來改變問題本身,但是要刪除「in Java」。 – 2010-08-02 17:44:04

+0

你遺漏了String getApartment(); – 2010-10-12 23:30:50

回答

3

住在馬德里,能說流利的西班牙語,我可以提供一些意見。

我不會分開街道類型和名稱,因爲街道類型通常是名稱的一部分,或者可能會丟失(例如Gran Via)。任何分析算法會得到一些錯誤或需要一個巨大的例外表(它會仍然得到一些錯誤)。

在地點之後爲該省提供一個字段。這是欺騙性的,因爲大城市往往省略省,尤其是在城市名和省名相同的情況下。下面是一個地區和省份不同的例子:

Calle Alcala, 45 
28192 El Berrueco 
Madrid 
Spain 
+0

吉姆 - 這是哪個省份,哪個是賤民? – 2010-08-02 18:23:14

+0

我們的用戶界面使街道類型和名稱是強制性的(如下圖所示),所以我將它們分開是有道理的。 (街道名稱): Tipo di Via(街道類型): Nombre di la Via(街道名稱): – 2010-08-02 18:26:20

+1

'El Berrueco'是地方,'馬德里'是省。另外'Tipo di Via'是意大利人。西班牙語是'Tipo de calle'和'Nombre de la Calle',儘管這些區別對於本地用戶來說可能看起來很奇怪。另外,如何處理啓動'c /'的地址,這是'Calle [de]'的標準縮寫?在您在西班牙發佈此文檔之前,我強烈建議您將其由本地的本地用戶進行審覈。 – 2010-08-02 19:03:49