Мне нужно проанализировать полное английское название страны для ISO 3166-1 Alpha 3 (например,: Соединенные Штаты -> США). Я пытался использовать java.util.locale API, но для большинства случаев это было бесполезно для меня. Затем я нашел библиотеку nv-i18n , но я не знаю, использую ли я это неправильно:
Код: Выделить всё
package cu.xetid.novabank.identity.aml.audit.register.handler.utils;
import com.neovisionaries.i18n.CountryCode;
public class CountryCodeConverter {
public static String getAlpha3Code(String countryName) {
if (countryName == null || countryName.isEmpty()) {
return "N/A";
}
CountryCode code = CountryCode.findByName(countryName).stream()
.filter(c -> c.getAlpha3() != null)
.findFirst()
.orElse(null);
return code != null ? code.getAlpha3() : "N/A";
}
}
Я однажды сделал то же самое в личном проекте, потребляя публичный API,
https://restcountries.com/v3.1/all, затем я сохранил его в JSON для кэширования и прочитал из них данные. Я ожидаю, что есть более простой способ сделать это, чем первое решение, которое я использовал.>
Подробнее здесь:
https://stackoverflow.com/questions/796 ... -1-alpha-3