Подтвердить что ты не робот

Лучший способ получить список стран в Java

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

4b9b3361

Ответ 1

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

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

  • Имена указаны во всех шапках. Вы, вероятно, захотите настроить его так, чтобы он не был.
  • Имена не все в простой ASCII.
  • Названия не являются полностью политически нейтральными (это, вероятно, невозможно для любого предполагаемого списка стран). Например, "Тайвань, провинция Китая" - это имя. Хорошей отправной точкой для изучения проблем является это сообщение в блоге.

Ответ 2

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

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.

Ответ 3

  • Создайте карту с этой страницы http://www.theodora.com/country_digraphs.html
  • Сохраните его в файл (я предлагаю класс XMLEncoder/XMLDecoder)
  • Создайте класс упаковки, который загружает эту Карту из файла (я бы использовал лениво инициализированный синглтон) и разрешаю доступ к методам get (...).
  • Повторите (или используйте двунаправленную карту) эти шаги для каждого столбца таблицы на вышеупомянутой веб-странице.
  • Fancy-Time: введите код, чтобы обернуть записи в объекте Reference (SoftReference?), чтобы Карта не выбрала MemoryErrors