将ISO3国家代码转换为整个国家名称,Android

时间:2019-11-14 12:50:27

标签: java android locale iso

我需要将ISO3等国家/地区代码转换为法国,可以吗?我尝试过: Locale locale = new Locale("FRA") or Locale locale = new Locale("","FRA") locale.getDisplayCountry() 但返回空字符串。

1 个答案:

答案 0 :(得分:-1)

Locale构造函数的第二个参数需要一个ISO2代码,而不是ISO3。您需要先将ISO3映射到ISO2,然后获取国家/地区名称。

这可能是最坏的解决方案,我不知道有更好的解决方案,但是它可以工作。

String[] languages = Locale.getISOLanguages();
Map<String, Locale> localeMap = new HashMap<String, Locale>(languages.length);
for (String language : languages) {
    Locale locale = new Locale(language);
    localeMap.put(locale.getISO3Language(), locale);
}
Locale locale = new Locale("",localeMap("FRA"));
Log.e("loc",""+locale.getDisplayCountry());