使用 Java,有没有一种快速的方法可以将 alpha-2 国家代码(IN 或 GB)转换为 alpha-3 等值(IND 或 GBR)?
我可以通过以下方式获取 alpha-2 代码:
String[] 代码 = java.util.Locale.getISOLanguages();
这不是问题,实际上我的应用程序读取了 alpha-2 代码,但我需要输出 alpha-3 等效项。
有没有类似上面的方法来获取 alpha-3 代码?
有什么建议么?
使用 Java,有没有一种快速的方法可以将 alpha-2 国家代码(IN 或 GB)转换为 alpha-3 等值(IND 或 GBR)?
我可以通过以下方式获取 alpha-2 代码:
String[] 代码 = java.util.Locale.getISOLanguages();
这不是问题,实际上我的应用程序读取了 alpha-2 代码,但我需要输出 alpha-3 等效项。
有没有类似上面的方法来获取 alpha-3 代码?
有什么建议么?
这有效 -
Locale locale = new Locale("en","IN");
System.out.println("Country=" + locale.getISO3Country());
输出:
Country=IND
是的,简单地创建一个语言环境并从语言环境中获取 if:
String alpha3Country = new Locale("en", alpha2County).getISO3Country();
BTW:getISOLanguages()
返回语言代码(小写),getISOCountries()
返回国家代码(大写)
由于您阅读了代码,因此您无法对其进行硬编码,而是应该创建一个查找表以转换为 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" ) );
}
Gopi 的回答有效。但请注意,返回的代码是 ISO 3166 国家代码,而不是 ISO 4217 货币代码。这些略有不同,因此请谨慎使用