Aus mehreren Leerzeichen ein Leerzeichen machen

celloman

Erfahrenes Mitglied
Hallo,

kann mir jemand sagen wie ich aus meehreren Leerzeichen einen Leerzeichen machen kann.


Beispiel:

Hans Peter

Code:
String name="Hans      Peter";


name = name.replace('       ', ' ');



Funktioniert nicht.
 
ich habe es jetzt zwar nicht ausprobiert, aber hast Du es schon mal damit oder etwas ähnlichem versucht?
Code:
" Hans    Peter".replaceAll("\s+", " ");

hier noch ein Link in Bezug auf reguläre Ausdrücke
 
Ja habe ich.

in einer Zeile habe ich zwischen zwei Wörtern drei lerrzeichen.

Diese möchte ich auf ein Leerzeichen verkürzen.

Habe es mit \r, \n, \t, \r versucht,

es will aber nicht so wie ich es möchte.
 
Hi.

Der Vorschlag von Takidoso sollte eigentlich funktionieren, bis auf den Aspekt, das man den Backslash entwerten müßte.

Falls es nicht funktioniert mach doch mal bitte ein Minimalbeispiel-Programm was das demonstriert. Bei mir funktioniert es jedenfalls.

Gruß
 
In einem regex-String ist ein "\s" das Zeichen für einen Space. Die Zeichen die du aufgeführt hast sind im Allgeminen Steuerzeichen (Zeilenumbruch, Tab etc) und haben so direkt erstmal nichts miteinander zu tun.
 
Ok ich wusste nicht, welche Zeichen alles darunter zählen, mir war es nur als Leerzeichen bekannt (was es ja in dem Sinne dann nicht mehr ist).
Danke für den Hinweis.

Allerdings ist es in dem Beispiel korrekt, dass die Steuerzeichen "\r","\t" etc nicht zum gewünschten Ergebnis führen werden ;)
 
Also zum einen stimmt es, das die REgex von mir nicht funktioniert weil da noch ein Backslash reingehört, da sonst etwas falsches in den Regex Interpreter reingebracht wird. Zum anderen wenn man patu nicht auf alle Whitespaces eingehen möchte kann man auch es mal mit einem einfachen Space versuchen
also
"Hans Peter".replaceAll("\\s+", " ");
oder
"Hans Peter".replaceAll("[ ]+", " ");
Wenn man grundsätzlich nur von 3Blanks ausgehen möchte ginge vielleicht
"Hans Peter".replaceAll("[ ]{3}", " ");
naja probiere es einfach mal aus.
 
So Hallo und Mahlzeit.

also ich habe diesen Text.

4G8_800_415____0210_A87_0001_L 2864,47 -696,77 638,13
4G8_800_415____0210_A88_0001_L 230,00 -806,72 12,42
4G8_800_415____0210_A88_0001_R 230,00 806,72 12,42
4G8_800_415____0210_A89_0001_L 251,22 -734,50 121,00
4G8_800_415____0210_A89_0001_R 251,22 734,50 121,00
4G8_800_415____0210_A90_0001_L 341,28 -714,70 590,42
4G8_800_415____0210_A90_0001_R 341,28 714,70 590,42
4G8_800_415____0210_A91_0001_L 526,22 -751,96 548,11
4G8_800_415____0210_A91_0001_R 526,22 751,96 548,11

mit

Code:
 zeile = zeile.replaceAll("    [ ](4)","");

habe ich versucht die leerzeichen wegzumachen, geht aber leider nicht.

Und ich wüsste jetzt nicht wie man aus vie Unterstriche"_" einen Unterstrich macht.

jede Zeile sollte so aussehen.


4G8_800_415_0210_A87_0001_L \n2864,47\n -696,77\n638,13
 
also ich habe diesen Text.

4G8_800_415____0210_A87_0001_L 2864,47 -696,77 638,13
4G8_800_415____0210_A88_0001_L 230,00 -806,72 12,42
4G8_800_415____0210_A88_0001_R 230,00 806,72 12,42
4G8_800_415____0210_A89_0001_L 251,22 -734,50 121,00
4G8_800_415____0210_A89_0001_R 251,22 734,50 121,00
4G8_800_415____0210_A90_0001_L 341,28 -714,70 590,42
4G8_800_415____0210_A90_0001_R 341,28 714,70 590,42
4G8_800_415____0210_A91_0001_L 526,22 -751,96 548,11
4G8_800_415____0210_A91_0001_R 526,22 751,96 548,11

mit

Code:
 zeile = zeile.replaceAll("    [ ](4)","");
So kann es auch nicht funktionieren. Probiere es mal so wie schon mehrfach vorgeschlagen. Und du solltest mal den Link von Takidoso folgen und dich über reg. Ausdrücke informieren.

Gruß
 
Zurück