将国家代码alpha-2(IN)转换为alpha 3(IND)的Java代码

将国家代码alpha-2(IN)转换为alpha 3(IND)的Java代码,java,locale,country-codes,Java,Locale,Country Codes,使用Java,是否有一种快速转换alpha-2国家/地区代码(IN或GB)的方法 是否达到阿尔法-3当量(IND或GBR) 我可以通过以下方式获得alpha-2代码: String[]codes=java.util.Locale.GetIsolagues() 这不是问题,实际上我的应用程序读取alpha-2代码,但我需要输出alpha-3等效代码 有没有类似的方法获得alpha-3代码 有什么建议吗?是的,简单地创建一个区域设置并从该区域设置中获取if: String alpha3Country

使用Java,是否有一种快速转换alpha-2国家/地区代码(IN或GB)的方法 是否达到阿尔法-3当量(IND或GBR)

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

String[]codes=java.util.Locale.GetIsolagues()

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

有没有类似的方法获得alpha-3代码


有什么建议吗?

是的,简单地创建一个区域设置并从该区域设置中获取if:

String alpha3Country = new Locale("en", alpha2County).getISO3Country();
顺便说一句:
getISOLanguages()
返回语言代码(小写),
getISOCountries()
返回国家代码(大写)

这是有效的-

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

Country=IND

由于您读入了代码,因此不能硬编码它们,而是应该创建一个查找表以转换为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" ) );
    }
publicstaticvoidmain(字符串[]args){
//设置
Locale[]availablecales=Locale.getavailablecales();
HashMap=newHashMap();
对于(区域设置l:可用的日历){
map.put(l.getCountry(),l.getISO3Country());
}
//用法
System.out.println(map.get(“IN”);
System.out.println(map.get(“GB”);
}

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

这很好,因为我每次都可以输入一个包含新国家/地区代码的变量,它将为每个国家/地区返回相应的3字符代码。语言环境=新语言环境(“en”,myCode);语言都是英语,但我不关心语言。这很好,因为我每次都可以插入一个包含新国家代码的变量,它会返回每个国家对应的3字符代码。语言都是英语,但我不关心语言。另一方面,您可以等效地执行
newlocale(“,alpha2County”).getISO3Country()
。在这里指定英语是不相关的。错误的顺便说一句:国家代码是大写的,语言代码是小写的。请尝试阅读这篇文章,以便更好地理解这里的问题/答案。你的贡献并没有回答这个问题。这更多的是一种评论,一旦你提高了声誉,你可以添加: