Afficher une liste des pays en Java

Afficher une liste des pays en Java

world-country

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

country list

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 Map languagesMap = 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

country list