Entfernen Sie Satzzeichen aus einer Zeichenfolge in Java

Während der Textverarbeitung, ob Sie nach bestimmten Wörtern suchen und Mustervergleichsregeln aufstellen, die Häufigkeit von Elementen zählen usw. – Satzzeichen können Ihre Pläne durcheinanderbringen.

Oft möchten Sie Stoppwörter, Satzzeichen, Ziffern oder Ähnliches entfernen einige Kategorie von Charakteren, je nachdem, was Ihr Endziel ist.

In diesem kurzen Tutorial sehen wir uns an, wie man Satzzeichen aus einer Zeichenfolge in Java entfernt.

Satzzeichen aus Zeichenfolge mit RegEx entfernen (reguläre Ausdrücke)

Reguläre Ausdrücke passen hier sehr gut, sowohl weil sie wahrscheinlich Teil anderer Verarbeitungsteile sein werden, als auch weil sie effiziente Mustervergleiche sind! In Java lautet der reguläre Ausdruck für übereinstimmende Interpunktion p{Punct} oder eine Kurzschrift p{P}.

Sie müssen den ersten umgekehrten Schrägstrich in einer Zeichenfolge mit Escapezeichen versehen, sodass das Entfernen aller Satzzeichen dem Abgleichen und Ersetzen durch ein leeres Zeichen entspricht:

String.replaceAll("p{P}", "")

Wenden wir es auf einen einfachen Satz an:

String text = "Hi! This is, in effect, a synthetic sentence. It's meant to have several punctuation characters!";
String clean = text.replaceAll("p{P}", "");
System.out.println(clean);

Das führt zu:

Hi This is in effect a synthetic sentence Its meant to have several punctuation characters

Schauen wir uns an, welche Zeichen hier als Satzzeichen behandelt werden:

String text = "!#$%&'()*+,-./:;[email protected][]^_`{|}~";
String clean = text.replaceAll("p{P}", "");
System.out.println(clean);

Bei diesen Sonderzeichen – welche bleiben nach dem Entfernen der Satzzeichen übrig?

$+^`|~

Satzzeichen aus Zeichenfolge ohne RegEx entfernen

Wenn Sie keine regulären Ausdrücke verwenden möchten, können Sie eine manuelle Überprüfung durchführen, während Sie durch jedes Zeichen einer Zeichenfolge iterieren. Denken Sie daran, a zu verwenden StringBuffer statt a String da Strings unveränderlich sind und jedes Mal Kopien erstellt werden müssen, wenn Sie ein Zeichen hinzufügen möchten – Sie würden also erstellen string.length Anzahl der Strings im Speicher.

StringBuffer ist veränderlich und kann am Ende des Prozesses leicht in einen unveränderlichen String umgewandelt werden:

Sehen Sie sich unseren praxisnahen, praktischen Leitfaden zum Erlernen von Git an, mit Best Practices, branchenweit akzeptierten Standards und einem mitgelieferten Spickzettel. Hören Sie auf, Git-Befehle zu googeln und tatsächlich in Verbindung, um es!

public static String removePunctuations(String s) {
    StringBuffer buffer = new StringBuffer();
    for (Character c : s.toCharArray()) {
        if(Character.isLetterOrDigit(c))
            buffer.append(c);
    }
    return buffer.toString();
}

Lassen Sie uns einen String erstellen und ihn bereinigen:

String text = "Hello! nHere are some special characters: !#$%&'()*+,-./:;[email protected][]^_`{|}~ nWhere are they? :(n";
System.out.println(text);
String clean = removePunctuations(text);
System.out.println(clean);
Hello! 
Here are some special characters: !#$%&'()*+,-./:;[email protected][]^_`{|}~ 
Where are they? :(

HelloHerearesomespecialcharactersWherearethey

Dieser Prozess ist zwar besser anpassbar, prüft aber nur auf Buchstaben und Ziffern. Sie können alternativ manuell nach Zeichencodes suchen und stattdessen nur einige Satzzeichen ausschließen – und Leerzeichen, Zeilenumbrüche usw.

Zusammenfassung

In diesem kurzen Tutorial haben wir uns angesehen, wie Sie Satzzeichen oder bestimmte Sonderzeichen aus einem String in Java entfernen können, indem Sie reguläre Ausdrücke oder eine manuelle Überprüfung in einem erweiterten verwenden for Schleife.

Zeitstempel:

Mehr von Stapelmissbrauch