java - 将 ISO3 国家/地区代码转换为整个国家/地区名称,Android

标签 java android locale iso

我需要将国家/地区 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/

相关文章:

java - double 的输出是怎么回事?

php - 如何使用 android 中的 volley 库将数据保存到 mysql?

android - 如何使用 gradle 在 APK 文件名中设置 versionName?

java - 由于 Admob 安全异常 : Permission Denial,如何在 admob 中阻止广告商

excel - 阿拉伯字符在 Excel VBA 代码中不显示

java - 如何在Java中的所有类中共享使用哪个Locale?

java - 接口(interface)内的主要方法 (java-8)

java - JSOUP 无法在 Android Studio 中提取动态生成的 DOM 内容

java - 显示数组中包含的值

java - Java 应用程序中小数点 (.) 作为分隔符,Oracle 数据库中以逗号 (,) 分隔符