Ami*_*mar 3 java collections locale
我需要根据国家/地区代码查找语言。对于国家代码“US”,应返回“en”或“CN”应返回“zh”。我经历过java.util.Locale,它适用于语言代码而不是国家代码。另外,Locale.getAvailableLocales这里没有帮助,因为它返回同一国家/地区代码的多种语言。还有什么可以用的吗。我想避免初始化文件中所有有用的区域设置然后使用它。(因为每当我们必须使用新的语言环境时,它可能需要定期更新)
提前致谢
查看了其他 stackoverflow 问题,找不到答案,因此在这里发布了一个新问题。
您可以构建一个HashMap将国家/地区代码映射到语言集的方法,如下所示:
Locale[] locales = Locale.getAvailableLocales();
Map<String,HashSet<String>> countryLanguageMap = new HashMap<>();
for (Locale locale : locales) {
String country = locale.getCountry(), language = locale.getLanguage();
if(!country.isEmpty() && !language.isEmpty()) {
if(countryLanguageMap.containsKey(country))
countryLanguageMap.get(country).add(language);
else
countryLanguageMap.put(country, new HashSet<String>(Arrays.asList(language)));
}
}
Run Code Online (Sandbox Code Playgroud)
然后,获取国家代码的语言如下:
countryLanguageMap.get("US"); // [en, es]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2307 次 |
| 最近记录: |