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 +"," ");

2voto

Sie sollten es so machen

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

Setzen Sie + in runde Klammern.

2voto

Zak Punkte 24386

Voir String.replaceAll .

Verwenden Sie die Regex "\s" und ersetzen durch " " .

Dann verwenden Sie String.trim .

2voto

KhaledMohamedP Punkte 4094
String str = " hello world"

Räume zuerst verkleinern

str = str.trim().replaceAll(" +", " ");

den ersten Buchstaben groß und alles andere klein schreiben

str = str.substring(0,1).toUpperCase() +str.substring(1,str.length()).toLowerCase();

1voto

Sandun Susantha Punkte 790

Die einfachste Methode zur Entfernung von Leerzeichen in der Zeichenkette.

 public String removeWhiteSpaces(String returnString){
    returnString = returnString.trim().replaceAll("^ +| +$|( )+", " ");
    return returnString;
}

1voto

Mr_Hmp Punkte 2376

Das hat bei mir funktioniert

scan= filter(scan, " [\\s]+", " ");
scan= sac.trim();

wobei filter die folgende Funktion und scan die Eingabezeichenfolge ist:

public String filter(String scan, String regex, String replace) {
    StringBuffer sb = new StringBuffer();

    Pattern pt = Pattern.compile(regex);
    Matcher m = pt.matcher(scan);

    while (m.find()) {
        m.appendReplacement(sb, replace);
    }

    m.appendTail(sb);

    return sb.toString();
}

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