webentwicklung-frage-antwort-db.com.de

Prüfen Sie, ob der String ein Interpunktionszeichen ist

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");
    }
}
10
sephtian

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]))
18
Karthik T

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.

52
dasblinkenlight

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)
9
Hans Brende

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.

1
Jj Tuibeo

import String ... if (string.punctuation.contains (letter [a]))

0
user3258797