350 Stimmen

Java: Ersetzen von 2 oder mehr Leerzeichen durch ein einzelnes Leerzeichen in einem String und Löschen von führenden und nachfolgenden Leerzeichen

Suche nach einer schnellen, einfachen Möglichkeit in Java, diese Zeichenfolge zu ändern

" hello     there   "

zu etwas, das wie folgt aussieht

"hello there"

wo ich all diese mehrfachen Leerzeichen durch ein einzelnes Leerzeichen ersetze, außer dass ich auch möchte, dass die ein oder mehreren Leerzeichen am Anfang der Zeichenfolge verschwinden.

Etwas wie das hier bringt mich teilweise dahin

String mytext = " hello     there   ";
mytext = mytext.replaceAll("( )+", " ");

aber nicht ganz.

10 Stimmen

Sie sollten in Erwägung ziehen, eine Antwort zu akzeptieren. Das macht es den Leuten, die später auf die Seite kommen, viel einfacher, eine endgültige Lösung zu wählen.

2 Stimmen

Dies ist eine der am meisten empfohlenen Methoden. => . String nameWithProperSpacing = StringUtils.normalizeSpace( stringWithLotOfSpaces );

4 Stimmen

S = s.replaceAll(" \\s +"," ");

18voto

Gitesh Dalal Punkte 181
"[ ]{2,}"

Dies entspricht mehr als einem Leerzeichen.

String mytext = " hello     there   ";
//without trim -> " hello there"
//with trim -> "hello there"
mytext = mytext.trim().replaceAll("[ ]{2,}", " ");
System.out.println(mytext);

OUTPUT:

hello there

15voto

George Punkte 8287

Um Leerzeichen am Anfang und am Ende des Strings zu entfernen, verwenden Sie String#trim() Methode. Und dann verwenden Sie Ihre mytext.replaceAll("( )+", " ") .

13voto

Narek Punkte 91
String blogName = "how to   do    in  java   .         com"; 

String nameWithProperSpacing = blogName.replaceAll("\\\s+", " ");

12voto

Eyal Schneider Punkte 21626

Sie können zunächst die String.trim() und wenden Sie dann den Befehl regex replace auf das Ergebnis an.

10voto

Raj S. Rusia Punkte 670

Versuchen Sie dies.

Beispiel-Code

String str = " hello     there   ";
System.out.println(str.replaceAll("( +)"," ").trim());

OUTPUT

hello there

Zunächst werden alle Leerzeichen durch einfache Leerzeichen ersetzt. Dann müssen wir trim machen String weil ab dem String und Ende des String wird das gesamte Leerzeichen durch ein einzelnes Leerzeichen ersetzt, wenn String hat Leerzeichen bei Beginn der String und Ende des String Wir müssen sie also zurechtstutzen. Dann erhalten Sie Ihr gewünschtes String .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X