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?

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top