Предположим, у вас есть двухсимвольный символ String
, который должен представлять ISO 639 название страны или языка.
Вы знаете, что класс Locale
имеет две функции < a href="http://docs.oracle.com/javase/7/docs/api/java/util/Locale.html#getISOLanguages%28%29" rel="noreferrer">getISOLanguages
и getISOCountries
, которые возвращают массив из String
со всеми языками ISO и странами ISO соответственно.
Чтобы проверить, является ли конкретный объект String
допустимым языком ISO или страной ISO, я должен просмотреть эти массивы на предмет соответствия String
. Хорошо, я могу сделать это с помощью бинарного поиска (например, Arrays.binarySearch
или ApacheCommons ArrayUtils.contains
) .
Вопрос в следующем: существует какая-либо утилита (например, из библиотек Guava или Apache Commons), которая обеспечивает более чистый способ, например. функция, которая возвращает boolean
для проверки String
как допустимого языка ISO 639 или страны ISO 639?
Например:
public static boolean isValidISOLanguage(String s)
public static boolean isValidISOCountry(String s)
Pattern.matches("[a-z]+", s)
иPattern.matches("[A-Z]+", s)
просто для того, чтобы быть уверенным, что строки — это, соответственно, только альфа-символы в нижнем и верхнем регистре. Я хочу создать исключение, чтобы предоставить отзыв об отсутствующей достоверности предоставленной строки. - person mat_boy   schedule 10.04.2013