Alfabeti Java in diverse lingue
-
03-07-2019 - |
Domanda
Come posso determinare se String contiene solo alfabeti e voglio avere poco più di [a-zA-Z] +, quindi esiste un modo per determinare gli alfabeti per Locale?
Soluzione
Il Character
ha metodi come isLetter
che sarà in grado di determinare se un carattere è una lettera come definito nelle specifiche API per il metodo.
Esiste anche un altro approccio all'utilizzo di Classe Character.UnicodeBlock
che è in grado di restituire se un personaggio si trova in un blocco di caratteri specifico di katakana a tutta larghezza, e per poterlo fare, ho dovuto usare Character.UnicodeBlock.of
:
boolean isKatakana =
Character.UnicodeBlock.of(c) == Character.UnicodeBlock.KATAKANA;
Inoltre, per aggiungere, il carattere in un determinato indice di una String
può essere recuperato utilizzando charAt (int)
e il punto di codice Unicode può essere recuperato dal codePointAt (int)
metodo.
Altri suggerimenti
Inoltre, dai un'occhiata al pacchetto com.ibm.icu.text. Ad esempio, questo frammento restituisce tutte le lettere dell'alfabeto per la lingua definita:
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();
Questa attività non può essere raggiunta tramite i pacchetti java. *.