Лучший способ получить список стран на Яве - PullRequest
22 голосов
/ 03 апреля 2009

Кроме Locale.getISOCountries(), то есть, потому что я уже получаю некоторые странные ошибки с этим . Как еще можно получить двухбуквенные коды стран и полное название страны?

Ответы [ 4 ]

42 голосов
/ 23 апреля 2013

См. Фрагменты кода:

String[] countryCodes = Locale.getISOCountries();

for (String countryCode : countryCodes) {

    Locale obj = new Locale("", countryCode);

    System.out.println("Country Code = " + obj.getCountry() 
        + ", Country Name = " + obj.getDisplayCountry());

}

См. Этот список стран на Java для получения дополнительных примеров.

4 голосов
/ 03 апреля 2009

Для отдельного проекта я взял данные кода страны с сайта ISO .

Остерегайтесь следующего:

  • Имена указаны во всех заглавных буквах. Возможно, вы захотите настроить его так, чтобы это не так.
  • Имена не все в простом ASCII.
  • Названия не являются полностью политически нейтральными (вероятно, для любого предполагаемого списка стран быть не может). Например, "Тайвань, провинция Китая" - это название. Хорошей отправной точкой для изучения проблем является это сообщение в блоге .
1 голос
/ 03 апреля 2009
  1. Создать карту из этой страницы http://www.theodora.com/country_digraphs.html
  2. Сохраните его в файл (я предлагаю класс XMLEncoder / XMLDecoder)
  3. Создайте класс обтекания, который загружает эту Карту из файла (я бы использовал одиночно инициализированный синглтон) и разрешает доступ к методам get (...).
  4. Повторите (или используйте двунаправленную карту) эти шаги для каждого столбца таблицы на вышеупомянутой веб-странице.
  5. Fancy-Time: Добавьте некоторый код для переноса записей в объекте Reference (SoftReference?), Чтобы карта не выдавала MemoryErrors
0 голосов
/ 05 августа 2018

Вы можете использовать от json ниже как

  1. Разбор Json ..

    String jsonString =JSON_DATA;
    ObjectMapper mapper = new ObjectMapper();    
    try {
            JsonNode rootNode = mapper.readTree(jsonString);              
    
            for (JsonNode node : rootNode) {
                String countrycode = node.path("code").asText();
                String dialnumber = node.path("dial_code").asText();
                String countryname = node.path("name").asText();
    
            }
    
    
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    
  2. Json String здесь

    public static String JSON_DATA="
    
     [
       {
        "name": "Afghanistan",
        "dial_code": "+93",
        "code": "AF"
       }, 
    
      {
       "name": "Aland Islands",
      "dial_code": "+358",
      "code": "AX"
      },
    
    
    {
      "name": "Albania",
     "dial_code": "+355",
     "code": "AL"
     },
    
    {
     "name": "Algeria",
     "dial_code": "+213",
     "code": "DZ"
     },
    
    {
       "name": "AmericanSamoa",
       "dial_code": "+1684",
       "code": "AS"
      }]";
    
  3. Или Вы можете скачать полный JSON по ссылке: https://gist.github.com/Goles/3196253

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...