Alfabetos de Java en diferentes idiomas
-
03-07-2019 - |
Pregunta
¿Cómo puedo determinar si String contiene solo alfabetos y quiero tener poco más que [a-zA-Z] +, entonces hay alguna forma de determinar los alfabetos según la configuración regional?
Solución
El Character
la clase tiene métodos como isLetter
que podrá determinar si un carácter es una letra tal como se define en la especificación de API para el método.
También hay otro enfoque de usar Character.UnicodeBlock
que puede devolver si un personaje está en un bloque de caracteres específico de katakana de ancho completo. y para poder hacerlo, tuve que usar el Character.UnicodeBlock.of
:
boolean isKatakana =
Character.UnicodeBlock.of(c) == Character.UnicodeBlock.KATAKANA;
También para agregar, el carácter en un determinado índice de una String
se puede recuperar usando charAt (int)
, y el punto de código Unicode puede ser recuperado por el codePointAt (int)
método.
Otros consejos
Además, consulte el paquete com.ibm.icu.text. Por ejemplo, este fragmento de código devuelve todas las letras del alfabeto para el idioma definido:
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();
No se puede acceder a esta tarea por medio de los paquetes java. *.