代码之家  ›  专栏  ›  技术社区  ›  Aravind Yarram

用java表示西班牙地址的最佳方法

  •  1
  • Aravind Yarram  · 技术社区  · 14 年前

    我将下面的地址编码为西班牙的地址。让我知道是否有更好的方法来做到这一点,或者如果已经有一个开源库处理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();
    }
    
    1 回复  |  直到 14 年前
        1
  •  3
  •   Jim Garrison    14 年前

    我住在马德里,西班牙语流利,我可以提出几点意见。

    我不会将street type和name分开,因为street type通常是名称的一部分,或者可能会丢失(例如Gran Via)。任何解析算法要么会出错,要么需要一个庞大的异常表(而且它会 仍然

    在地区之后为省提供一个字段。这是有欺骗性的,因为对于大城市来说,省名经常被省略,特别是在城市名和省名相同的地方。这里有一个地方和省份不同的例子:

    Calle Alcala, 45
    28192 El Berrueco
    Madrid
    Spain