Кроме Locale.getISOCountries()
, потому что я уже получаю некоторые странные ошибки с этим. Какой еще лучший способ получить двухбуквенные коды стран, а также полное название страны?
Лучший способ получить список стран в Java
Ответ 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