我如何从java中的ISO3166-1 alpha-2国家代码中获取国家名称

问题描述 投票:0回答:3

我在 API 响应中从服务器获取 ISO alpha-2 国家/地区代码,但我需要将该 ISO alpha-2 国家/地区代码 转换为国家/地区名称。我正在使用 Java 8。

java-8 appserver
3个回答
1
投票

使用下面的代码,我们可以从 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);
    }

0
投票

尝试查看此问题的答案:是否有 ISO 3166-1 国家/地区代码的开源 Java 枚举

您应该能够向您的应用程序添加一个库,以便您通过代码获取国家/地区的名称。


0
投票

自 Java 19 起,可用于通过 ISO 3166 alpha-2 国家/地区代码获取英文国家/地区名称:

Locale.of("", alpha2CountryCode).getDisplayCountry()
© www.soinside.com 2019 - 2024. All rights reserved.