获取Java中的完整语言名称列表

时间:2017-01-16 15:08:17

标签: java

如何获取语言全名列表?我检查了Locale类并找到了getISOLanguages(),但当我需要语言的全名时(例如,“英语”),它会返回2个字母的语言代码(例如,'en')。

更好的方法是什么?

1 个答案:

答案 0 :(得分:4)

最后,感谢Thomas的评论,我以这样的方式实现了它:

SortedSet<String> allLanguages = new TreeSet<String>();
String[] languages = Locale.getISOLanguages();
for (int i = 0; i < languages.length; i++){
    Locale loc = new Locale(languages[i]);
    allLanguages.add(loc.getDisplayLanguage());
}

UPD。还有更现代的风格:

Set<String> languages = Arrays.stream(Locale.getISOLanguages())
            .map(Locale::new)
            .map(Locale::getDisplayLanguage)
            .collect(Collectors.toCollection(TreeSet::new));