从国家/地区代码int获取国家/地区名称

时间:2017-06-29 09:18:34

标签: android locale country-codes

我是Java Android的新手。

我想使用Locale中的国家/地区代码获取国家/地区名称(字符串)(参考文献ISO 3166-1 numeric

尝试做类似的事情(其中[...]。getCountry()返回int 826):

Locale countryName = new Locale("", String.valueOf(profile.getPersonnalInformation().getAddress().getCountry())); 

并使用以下内容获取国家/地区的名称:countryName.getDisplayCountry()

它应该通常会让我“英国”但不幸的是我有826。

我该怎么做?

提前感谢您的帮助,

2 个答案:

答案 0 :(得分:4)

现在,国家/地区代码(ISO 3166-1 alpha-2 / alpha-3 / numeric)列表的实现,因为Java枚举可以在Apache许可证版本2.0的GitHub上获得。

示例:

int c_code=profile.getPersonnalInformation().getAddress().getCountry());// 392

CountryCode cc = CountryCode.getByCode(c_code);

String country_name=cc.getName();              // "Japan"

<强>摇篮

dependencies {

  compile 'com.neovisionaries:nv-i18n:1.20'

}

<强> Github上

https://github.com/TakahikoKawasaki/nv-i18n

答案 1 :(得分:1)

你必须获得countricode字符串(2或3个字母)才能使用它。 github上有一个开源库,可以为你完成。见Is there an open source java enum of ISO 3166-1 country codes 或者只从https://subversivebytes.wordpress.com/2013/10/07/java-iso-3166-java-enum/

获取枚举