我在 API 响应中从服务器获取 ISO alpha-2 国家/地区代码,但我需要将该 ISO alpha-2 国家/地区代码 转换为国家/地区名称。我正在使用 Java 8。
使用下面的代码,我们可以从 Java 8 语言环境中获取所有国家/地区的 ISO3 代码和 ISO2 代码以及国家/地区名称。
public static void main(String[] args) throws Exception {
String[] isoCountries = Locale.getISOCountries();
for (String country : isoCountries) {
Locale locale = new Locale("en", country);
String iso = locale.getISO3Country();
String code = locale.getCountry();
String name = locale.getDisplayCountry();
System.out.println(iso + " " + code + " " + name);
}
}
您还可以创建一个查找表映射以在 ISO 代码之间进行转换。因为我需要在 iso3 到 iso2 之间转换,所以根据创建地图。
String[] isoCountries = Locale.getISOCountries();
Map<String, String> countriesMapping = new HashMap<String, String>();
for (String country : isoCountries) {
Locale locale = new Locale("en", country);
String iso = locale.getISO3Country();
String code = locale.getCountry();
String name = locale.getDisplayCountry();
countriesMapping.put(iso, code);
}
尝试查看此问题的答案:是否有 ISO 3166-1 国家/地区代码的开源 Java 枚举
您应该能够向您的应用程序添加一个库,以便您通过代码获取国家/地区的名称。
自 Java 19 起,可用于通过 ISO 3166 alpha-2 国家/地区代码获取英文国家/地区名称:
Locale.of("", alpha2CountryCode).getDisplayCountry()