2016-06-02 26 views
2

Ich muss alle Leerzeichen zwischen den Buchstaben entfernen und die doppelten Leerzeichen in einzelne Leerzeichen zwischen den Wörtern machen.Entfernen von Leerzeichen zwischen Buchstaben und doppelten Leerzeichen zwischen Wörtern

so dass diese (doppelte Leerzeichen zwischen den Wörtern):

hellomynameisbob

brauchen Wird dies werden:

Hallo mein Name ist Bob

I habe versucht
temp = "h e l l o m y n a m e i s b o b"
temp = temp.trim().replaceAll("\\s", "");
aber es entfernt nur alle Leerzeichen.

Ich schaffte es, indem Sie funktioniert:
temp = temp.replace(" ", ".");
temp = temp.replace(" ", "");
temp = temp.replace(".", " ");
Aber ich möchte einen einfacheren Weg, es zu tun.

Antwort

0

versuchen, diese

temp = temp.trim().replaceAll("(?<!\\s)\\s(?!\\s)", ""); 
temp = temp.replaceAll("\\s+", " "); 
0

Eine einfachere, elegantere Art und Weise, die nicht mit Regex rumgespielt enthält.

String yourString = "a s d d g d d d g g"; 
String finalstr = ""; 

for (String s: yourString.split(" ")) { 
    if (s.equals("")) 
     s = " "; 
    finalstr += s; 
} 
System.out.println(finalstr); 

Ausgang:asd dgddd gg

+1

Grund möchte erklären könnte für downvote

Dies würde wie folgt verwendet werden? –

3

sollten Sie die s regex \ verwenden (\ s?!). Dies sagt im Grunde alles, was ein Raum ist, aber keinen Raum hinter sich hat.

temp = "h e l l o m y n a m e i s b o b"; 
temp = temp.replaceAll("\\s(?!\\s)", ""); 
System.out.println(temp); 

Ausgänge: Hallo mein Name ist Bob

this helps :)

+1

Bemerkenswert, dass dies funktioniert, weil es den ersten Raum in einem doppelten Raum unberührt lässt und den zweiten tötet. –

Verwandte Themen