2016-01-22 186 views
2

我有一些國家變量,例如「法國」。 我想獲取國家代碼,在這個例子中,我想獲得「FR」或「fr」。Android Locale國名到國家代碼

我想:

Locale locale = new Locale("", "FRANCE"); 
Log.e("test", locale.getCountry()); 

但它返回:

FRANCE 

什麼我失蹤?

謝謝!

回答

2

你可以使用內置的Locale類:

Locale l = new Locale("", "CH"); 
System.out.println(l.getDisplayCountry()); 

打印 「瑞士」 的例子。請注意,我沒有提供一種語言。

那麼你可以反向查找要做的就是從現有的國家建立一個地圖:對這個職位POST發現

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")); 

}

答案。希望能幫助到你。