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

はい、単純に Locale を作成し、ロケールから if を取得します。

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

ところで: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

ゴピの答えはうまくいきます。ただし、返されるコードは ISO 3166国コードであり、ISO 4217 通貨コードではないことに注意してください。これらはわずかに異なるため、注意して使用してください

于 2014-02-24T12:17:05.730 に答える