Frage

Wie trimmen ich Räume im Inneren so dass nur noch ein Raum Berücksichtigung der Leistung zu nehmen?

Input:
     AA     BB
Output:
AA BB

Input:
A      A
Output:
A A
War es hilfreich?

Lösung

System.out.println("     AA     BB".replaceAll("\\s+", " ").trim());

Ausgabe:

AA BB

Hinweis: Im Gegensatz zu einigen der anderen Lösungen hier diese ersetzt auch eine einzelne Registerkarte mit einem einzigen Raum. Wenn Sie Sie verwenden können keine Tabs „{2,}“ statt, die noch schneller werden:

System.out.println("     AA     BB".replaceAll(" {2,}", " ").trim());

Andere Tipps

Ersetzen Sie zwei oder mehrere Leerzeichen durch ein Leerzeichen "\\s{2,}" " " und trim() tun danach von der loszuwerden führende und nachfolgende Leerzeichen, wie Sie im ersten Beispiel gezeigt.

output = input.replaceAll("\\s{2,}", " ").trim();
s = s.replaceAll("\\s+", " " ).trim();

"Hello a a g g a   gag gs    gs@".replaceAll( "[ ]+{2}", " ") ).trim();

Es gibt die richtigen Antworten hier, z.

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

Aber ich denke, es ist auch wichtig, die richtige Frage zu wählen. Statt etwa zu fragen, einen String mit regulären Ausdrücken Trimmen, warum nicht nur fragen, über die String Trimmen und Leute erlauben, Ihnen die beste Strategie zu zeigen, zu beantworten?

Es kann auch bessere Möglichkeiten, Räume zum Einsturz als einen regulären Ausdruck zu verwenden. Sicherlich gibt es andere Wege.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top