Java Alphabete in verschiedenen Sprachen
-
03-07-2019 - |
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?
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.