Frage

Wie kann ich feststellen, ob String nur Alphabete enthält und ich möchte etwas mehr haben, als [a-zA-Z] +, so ist es eine Möglichkeit, Alphabete zu bestimmen, indem Locale?

War es hilfreich?

Lösung

Die Character Klasse hat Methoden wie wie isLetter denen die Lage sein, zu bestimmen, ob ein Zeichen als ein Brief in der API-Spezifikation für die Methode definiert ist.

Es gibt auch einen anderen Ansatz der Verwendung der Character.UnicodeBlock Klasse, die, ob ein Zeichen in einem bestimmten Zeichenblock von Unicode .

Zum Beispiel musste ich feststellen, ob ein Zeichen war eine volle Breite Katakana Charakter, und in der Lage zu sein, dies zu tun, hatte ich die Character.UnicodeBlock.of Methode:

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

Auch das Zeichen an einem bestimmten Index eines String hinzuzufügen, können mit der charAt(int) Methode und der Unicode-Codepunkt kann durch die codePointAt(int) Methode.

Andere Tipps

Darüber hinaus werfen Sie einen Blick auf com.ibm.icu.text Paket. Zum Beispiel diese Schnipsel gibt alle Buchstaben des Alphabets für definierte Sprache:

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();

Diese Aufgabe kann nicht mit den Mitteln der Java erreicht werden. * Pakete.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top