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"

54voto

Varejones Punkte 613

Sie sollten Folgendes verwenden

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

anstelle von:

s.replaceAll("\\s", "");

Auf diese Weise wird es mit mehr als einem Leerzeichen zwischen den einzelnen Zeichenfolgen funktionieren. Das + Zeichen in der obigen Regex bedeutet "ein oder mehrere \s "

-- \s = Alles, was ein Leerzeichen ist (einschließlich Leerzeichen, Tabulatorzeichen usw.). Warum brauchen wir hier s+?

52voto

v.nivuahc Punkte 729

Wenn Sie auch ununterbrechbare Leerzeichen entfernen müssen, können Sie Ihren Code wie folgt aktualisieren:

st.replaceAll("[\\s|\\u00A0]+", "");

35voto

kamczak Punkte 505

Wenn Sie Utility-Klassen den Regexen vorziehen, gibt es eine Methode trimAllWhitespace(String) in StringUtils im Spring Framework.

26voto

Jonas Elfström Punkte 29746

Sie haben bereits die richtige Antwort von Gursel Koca erhalten, aber ich glaube, dass die Wahrscheinlichkeit groß ist, dass dies nicht das ist, was Sie wirklich tun wollen. Wie wäre es stattdessen mit dem Parsen der Schlüsselwerte?

import java.util.Enumeration;
import java.util.Hashtable;

class SplitIt {
  public static void main(String args[])  {

    String person = "name=john age=13 year=2001";

    for (String p : person.split("\\s")) {
      String[] keyValue = p.split("=");
      System.out.println(keyValue[0] + " = " + keyValue[1]);
    }
  }
}

Ausgabe:
name = john
Alter = 13
Jahr = 2001

11voto

Ayaskant Punkte 441

Am einfachsten geht das mit dem Befehl org.apache.commons.lang3.StringUtils Klasse von commons-lang3 Bibliothek wie z.B. " commons-lang3-3.1.jar " zum Beispiel.

Verwenden Sie die statische Methode " StringUtils.deleteWhitespace(String str) " auf Ihre Eingabezeichenfolge und Sie erhalten eine Zeichenfolge zurück, nachdem alle Leerzeichen entfernt wurden. Ich habe Ihr Beispielstring " name=john age=13 year=2001 " & es hat mir genau die Zeichenkette zurückgegeben, die Sie wollten - " name=johnage=13year=2001 ". Ich hoffe, das hilft.

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