Nehmen wir an, ich habe ein String-Array, das einige Buchstaben und Interpunktion enthält
%Vor%In Brief [3] haben wir "."
Wie kann ich überprüfen, ob eine Zeichenfolge ein Interpunktionszeichen ist? Wir wissen, dass es viele mögliche Interpunktionszeichen gibt (,.?! Etc.)
Mein bisheriger Fortschritt:
%Vor%Hier ist eine Möglichkeit, dies mit regulären Ausdrücken zu tun:
%Vor% Der reguläre Ausdruck \p{Punct}
ist ein POSIX-Muster, das ein einzelnes Interpunktionszeichen darstellt.
Versuchen Sie diese Methode: Character.isLetter (). Es gibt true zurück, wenn das Zeichen ein Buchstabe ist (a-z, Groß- oder Kleinbuchstaben), false, wenn das Zeichen numerisch oder ein Symbol ist.
z.B. Boolesche Antwort = Character.isLetter ('!');
Antwort ist gleich falsch.
Je nach Ihren Bedürfnissen könnten Sie entweder
verwenden %Vor%oder
%Vor% Das erste Muster entspricht den folgenden 32 Zeichen: !"#$%&'()*+,-./:;<=>?@[\]^_'{|}~
Das zweite Muster entspricht 632 Unicode-Zeichen, einschließlich: «
, »
, ¿
, ¡
, §
, ¶
, ‘
, ’
, “
, ”
und ‽
.
Interessanterweise stimmen nicht alle 32 Zeichen des ersten Musters mit denen des zweiten ab. Das zweite Muster stimmt nicht mit den folgenden 9 Zeichen überein: $
, +
, <
, =
, >
, ^
, '
, |
, und ~
(was das erste Muster stimmt überein).
Wenn Sie für jedes Zeichen aus entweder Zeichensatz suchen möchten, könnten Sie tun:
%Vor%Tags und Links java string-comparison punctuation