我需要将国家/地区 ISO3 代码(例如 FRA)转换为法国,可以吗?我尝试过:
Locale locale = new Locale("FRA") 或 Locale locale = new Locale("","FRA")
locale.getDisplayCountry()
但返回空字符串。
最佳答案
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());
关于java - 将 ISO3 国家/地区代码转换为整个国家/地区名称,Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58857222/