Afficher une liste des pays en Java
Dans cet article, nous vous montrons comment utiliser la classeLocale
pour jouer dans la liste des pays.
P.S Tested with JDK 1.6
1. Liste des pays
LeLocale.getISOCountries()
renverra une liste de tous les codes de pays à 2 lettres définis dansISO 3166.
ListCountry.java
package com.webmitta.model; import java.util.Locale; public class ListCountry { public static void main(String[] args) { ListCountry obj = new ListCountry(); obj.run(); } public void run() { String[] locales = Locale.getISOCountries(); for (String countryCode : locales) { Locale obj = new Locale("", countryCode); System.out.println("Country Code = " + obj.getCountry() + ", Country Name = " + obj.getDisplayCountry()); } System.out.println("Done"); } }
Sortie
Country Code = AD, Country Name = Andorra Country Code = AE, Country Name = United Arab Emirates Country Code = AF, Country Name = Afghanistan Country Code = AG, Country Name = Antigua and Barbuda Country Code = AI, Country Name = Anguilla Country Code = AL, Country Name = Albania //skip ...
2. Liste des pays dans les langues définies
Obtenez une liste de pays et affichez le nom du pays en chinois.
ListCountry.java
package com.webmitta.model; import java.util.Locale; public class ListCountry { public static void main(String[] args) { ListCountry obj = new ListCountry(); //get a list of countries and display in Chinese obj.getListOfCountries(Locale.Chinese); //display in frence //obj.getListOfCountries(Locale.FRENCH); } public void getListOfCountries(Locale locale) { String[] locales = Locale.getISOCountries(); for (String countryCode : locales) { Locale obj = new Locale("", countryCode); System.out.println("Country Code = " + obj.getCountry() + ", Country Name = " + obj.getDisplayCountry(locale)); } } }
Sortie, Eclipse avec sortie UTF-8 activée
3. Liste des pays dans leurs propres langues
Obtenez une liste de pays et affichez le nom du pays dans les langues de votre pays. L'astuce consiste à créer un objetMap
et à stocker le code du pays et les langues du pays, pour une requête ultérieure.
Note
Attention, tous les pays n'ont pas leurs propres langues.
ListCountry.java
package com.webmitta.model; import java.util.Locale; import java.util.Map; import java.util.TreeMap; public class ListCountry { private MaplanguagesMap = new TreeMap (); public ListCountry() { initLanguageMap(); } public static void main(String[] args) { ListCountry obj = new ListCountry(); obj.getListOfCountries(); } public void getListOfCountries() { String[] countries = Locale.getISOCountries(); int supportedLocale = 0, nonSupportedLocale = 0; for (String countryCode : countries) { Locale obj = null; if (languagesMap.get(countryCode) == null) { obj = new Locale("", countryCode); nonSupportedLocale++; } else { //create a Locale with own country's languages obj = new Locale(languagesMap.get(countryCode), countryCode); supportedLocale++; } System.out.println("Country Code = " + obj.getCountry() + ", Country Name = " + obj.getDisplayCountry(obj) + ", Languages = " + obj.getDisplayLanguage()); } System.out.println("nonSupportedLocale : " + nonSupportedLocale); System.out.println("supportedLocale : " + supportedLocale); } // create Map with country code and languages public void initLanguageMap() { Locale[] locales = Locale.getAvailableLocales(); for (Locale obj : locales) { if ((obj.getDisplayCountry() != null) && (!"".equals(obj.getDisplayCountry()))) { languagesMap.put(obj.getCountry(), obj.getLanguage()); } } } }
Sortie, Eclipse avec sortie UTF-8 activée