2016-01-22 7 views
2

У меня есть переменная страны, например, «Франция». Я хочу получить код страны, в этом примере я хочу получить «FR» или «fr».Язык Android для страны Код страны Код

Я пробовал:

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

Но он возвращает:

FRANCE 

Что я пропускаю?

Спасибо!

ответ

2

Вы можете использовать встроенный в класс 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")); 

}

ответ нашел на этом посту POST. Надеюсь, поможет.