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?

¿Fue útil?

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. *.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top