如何获取一种语言的国家名称列表(例如英文)?

fab*_*474 2 java grails groovy localization country-codes

使用Java,您可以获得ISO2代码列表Locale.getISOCountries()(请参阅此相关问题获取Java国家/地区列表的最佳方法).

但是,我希望列出所有国家/地区名称(例如英文),而不是ISO2国家/地区代码列表.我怎么能用Java或Groovy编程呢?

非常感谢你,

法比安.

Dón*_*nal 5

使用Groovy,这将打印一个排序的国家/地区名称列表:

def countries = [] as SortedSet

Locale.availableLocales*.displayCountry.each {
  if (it) {
    countries << it
  }
}

println countries
Run Code Online (Sandbox Code Playgroud)

在我的语言环境中,这会打印出来

[阿尔巴尼亚,阿尔及利亚,阿根廷,澳大利亚,奥地利,巴林,......,也门]

您需要使用a Set而不是a,List因为某些国家/地区有多个区域设置,例如加拿大国家/地区的法国加拿大和英语加拿大区域设置.