Android区域设置国家/地区名称到国家/地区代码

Android区域设置国家/地区名称到国家/地区代码,android,localization,Android,Localization,我有一些国家变量,比如“法国”。 我想得到国家代码,在这个例子中,我想得到“FR”或“FR” 我试过: Locale locale = new Locale("", "FRANCE"); Log.e("test", locale.getCountry()); 但它的回报是: FRANCE 我错过了什么 谢谢大家! 您可以使用内置的Locale类: Locale l = new Locale("", "CH"); System.out.printl

我有一些国家变量,比如“法国”。 我想得到国家代码,在这个例子中,我想得到“FR”或“FR”

我试过:

 Locale locale = new Locale("", "FRANCE");
 Log.e("test", locale.getCountry());
但它的回报是:

 FRANCE
我错过了什么


谢谢大家!

您可以使用内置的Locale类:

Locale l = new Locale("", "CH");
System.out.println(l.getDisplayCountry());
例如,打印“瑞士”。请注意,我没有提供语言

因此,对于反向查找,您可以从可用的国家/地区构建地图:

public static void main(String[] args) throws InterruptedException {
Map<String, String> countries = new HashMap<>();
for (String iso : Locale.getISOCountries()) {
    Locale l = new Locale("", iso);
    countries.put(l.getDisplayCountry(), iso);
}


System.out.println(countries.get("Switzerland"));
System.out.println(countries.get("Andorra"));
System.out.println(countries.get("Japan"));
publicstaticvoidmain(String[]args)抛出InterruptedException{
Map countries=新HashMap();
for(字符串iso:Locale.getISOCountries()){
语言环境l=新语言环境(“,iso”);
countries.put(l.getDisplayCountry(),iso);
}
System.out.println(countries.get(“瑞士”);
System.out.println(countries.get(“安道尔”);
System.out.println(countries.get(“日本”);
}

在这个帖子上找到答案。希望能有帮助