829 Stimmen

Entfernen von Leerzeichen aus Strings in Java

Ich habe einen String wie diesen:

mysz = "name=john age=13 year=2001";

Ich möchte die Leerzeichen in der Zeichenkette entfernen. Ich habe versucht trim() aber dies entfernt nur die Leerzeichen vor und nach der gesamten Zeichenkette. Ich habe auch versucht replaceAll("\\W", "") aber dann die = wird ebenfalls entfernt.

Wie kann ich eine Zeichenfolge mit erreichen:

mysz2 = "name=johnage=13year=2001"

1505voto

Gursel Koca Punkte 20310

st.replaceAll("\\s+","") entfernt alle Leerzeichen und nicht sichtbaren Zeichen (z. B. Tabulator), \n ).


st.replaceAll("\\s+","") y st.replaceAll("\\s","") das gleiche Ergebnis erzielen.

Die zweite Regex ist 20 % schneller als die erste, aber mit zunehmender Anzahl aufeinanderfolgender Leerzeichen schneidet die erste Regex besser ab als die zweite.


Weisen Sie den Wert einer Variablen zu, wenn er nicht direkt verwendet wird:

st = st.replaceAll("\\s+","")

283voto

nitro2k01 Punkte 7497
replaceAll("\\s","")

\w = Alles, was ein Wortzeichen ist

\W = Alles, was kein Wortzeichen ist (einschließlich Satzzeichen usw.)

\s = Alles, was ein Leerzeichen ist (einschließlich Leerzeichen, Tabulatorzeichen usw.)

\S = Alles, was kein Leerzeichen ist (einschließlich Buchstaben und Zahlen, sowie Satzzeichen usw.)

(Edit: Wie bereits erwähnt, müssen Sie den Backslash entschlüsseln, wenn Sie \s um die Regex-Engine zu erreichen, was zu \\s .)

119voto

Fletch Punkte 4399

Die richtigste Antwort auf die Frage ist:

String mysz2 = mysz.replaceAll("\\s","");

Ich habe diesen Code einfach aus den anderen Antworten übernommen. Ich poste ihn, weil er nicht nur genau das ist, was die Frage verlangt, sondern auch demonstriert, dass das Ergebnis wird als neue Zeichenkette zurückgegeben, die ursprüngliche Zeichenkette wird nicht geändert wie einige der Antworten vermuten lassen.

(Erfahrene Java-Entwickler werden vielleicht sagen: "Natürlich kann man einen String nicht wirklich ändern", aber die Zielgruppe dieser Frage weiß das vielleicht nicht).

82voto

jahir Punkte 721

Eine Möglichkeit zur Handhabung von String-Manipulationen ist StringUtils von Apache commons.

String withoutWhitespace = StringUtils.deleteWhitespace(whitespaces);

Sie können es finden aquí . commons-lang enthält viel mehr und wird gut unterstützt.

74voto

Erkan Haspulat Punkte 11302

Wie wäre es mit replaceAll("\\s", "") . Siehe aquí .

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