Java алфавиты на разных языках - PullRequest
2 голосов
/ 01 мая 2009

Как я могу определить, содержит ли String только алфавиты, и я хочу иметь немного больше, чем [a-zA-Z] +, так есть ли способ определить алфавиты по локали?

Ответы [ 2 ]

6 голосов
/ 01 мая 2009

Класс Character имеет такие методы, как isLetter, которые смогут определить, является ли символ буквой, как определено в спецификации API для метода.

Существует также другой подход использования класса Character.UnicodeBlock, который может возвращать, находится ли символ в определенном блоке символов Unicode .

Например, мне нужно было определить, был ли символ полной шириной катакана , и для этого мне пришлось использовать метод Character.UnicodeBlock.of :

boolean isKatakana = 
    Character.UnicodeBlock.of(c) == Character.UnicodeBlock.KATAKANA;

Кроме того, можно добавить, что символ с определенным индексом String можно получить с помощью метода charAt(int), а кодовую точку Unicode можно получить с помощью * 1029. * метод.

1 голос
/ 21 мая 2017

Кроме того, взгляните на пакет com.ibm.icu.text. Например, этот фрагмент возвращает все буквы алфавита для определенного языка:

ULocale ulocale = com.ibm.icu.util.ULocale
    .forLocale(Locale.forLanguageTag(language));
UnicodeSet set = LocaleData.getExemplarSet(ulocale, LocaleData.ES_STANDARD);
Iterator<String> iterator = set.iterator();
StringBuffer buf = new StringBuffer();
while (iterator.hasNext()) {
  buf.append(iterator.next());

}
return buf.toString();

Эта задача не может быть достигнута с помощью пакетов java. *.

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