Nehmen wir an, ich habe ein String-Array, das einige Buchstaben und Interpunktion enthält
String letter[] = {"a","b","c",".","a"};
In Brief [3] haben wir "."
Wie kann ich überprüfen, ob eine Zeichenfolge ein Interpunktionszeichen ist? Wir wissen, dass es viele mögliche Interpunktionszeichen (,.!! Usw.) gibt.
Mein bisheriger Fortschritt:
for (int a = 0; a < letter.length; a++) {
if (letter[a].equals(".")) { //===>> i'm confused in this line
System.out.println ("it's punctuation");
} else {
System.out.println ("just letter");
}
}
Möchten Sie mehr Interpunktionen als nur .
prüfen?
Wenn ja, kannst du das.
String punctuations = ".,:;";//add all the punctuation marks you want.
...
if(punctuations.contains(letter[a]))
Es gibt eine Möglichkeit, dies mit regulären Ausdrücken zu tun:
if (Pattern.matches("\\p{Punct}", str)) {
...
}
Der reguläre Ausdruck \p{Punct}
ist ein POSIX-Muster, das ein einzelnes Interpunktionszeichen darstellt.
Abhängig von Ihren Bedürfnissen können Sie beide verwenden
Pattern.matches("\\p{Punct}", str)
oder
Pattern.matches("\\p{IsPunctuation}", str)
Das erste Muster entspricht den folgenden 32 Zeichen: !"#$%&'()*+,-./:;<=>[email protected][\]^_`{|}~
Das zweite Muster entspricht 632 Unicode-Zeichen, darunter beispielsweise: «
, »
, ¿
, ¡
, §
, ¶
, ‘
, ’
, “
, ”
und ‽
.
Interessanterweise sind nicht alle der 32 Zeichen, die mit dem ersten Muster übereinstimmen, mit dem zweiten übereinstimmen. Das zweite Muster stimmt mit nicht mit den folgenden 9 Zeichen überein: $
, +
, <
, =
, >
, ^
, `
, |
und ~
(wobei das erste Muster mit übereinstimmt).
Wenn Sie mit einem beliebigen Zeichen aus entweder übereinstimmen möchten, können Sie Folgendes tun:
Pattern.matches("[\\p{Punct}\\p{IsPunctuation}]", str)
Versuchen Sie diese Methode: Character.isLetter (). Es gibt true zurück, wenn das Zeichen ein Buchstabe ist (a-z, Groß- oder Kleinbuchstaben), und false, wenn das Zeichen ein numerisches Zeichen oder ein Symbol ist.
z.B. boolean answer = Character.isLetter ('!');
antwort ist gleich falsch.
import String ... if (string.punctuation.contains (letter [a]))