16

使用 Java,有没有一种快速的方法可以将 alpha-2 国家代码(IN 或 GB)转换为 alpha-3 等值(IND 或 GBR)?

我可以通过以下方式获取 alpha-2 代码:

String[] 代码 = java.util.Locale.getISOLanguages();

这不是问题,实际上我的应用程序读取了 alpha-2 代码,但我需要输出 alpha-3 等效项。

有没有类似上面的方法来获取 alpha-3 代码?

有什么建议么?

4

4 回答 4

18

这有效 -

    Locale locale = new Locale("en","IN");
    System.out.println("Country=" + locale.getISO3Country());

输出:

Country=IND
于 2010-09-01T10:50:09.520 回答
12

是的,简单地创建一个语言环境并从语言环境中获取 if:

String alpha3Country = new Locale("en", alpha2County).getISO3Country();

BTW:getISOLanguages()返回语言代码(小写),getISOCountries()返回国家代码(大写)

于 2010-09-01T10:49:12.650 回答
4

由于您阅读了代码,因此您无法对其进行硬编码,而是应该创建一个查找表以转换为 ISO 代码。

public static void main(String[] args) {
        // setup
        Locale[] availableLocales = Locale.getAvailableLocales();
        HashMap<String, String> map = new HashMap<String, String>();
        for ( Locale l : availableLocales ) {
            map.put( l.getCountry(), l.getISO3Country() );
        }
        // usage
        System.out.println( map.get( "IN" ) );
        System.out.println( map.get( "GB" ) );
    }
于 2010-09-01T10:55:05.573 回答
1

Gopi 的回答有效。请注意,返回的代码是 ISO 3166 国家代码,而不是 ISO 4217 货币代码。这些略有不同,因此请谨慎使用

于 2014-02-24T12:17:05.730 回答