# Zeilenumbruch aus String entfernen ?



## Gast (23. Mai 2006)

Hallo,
hab hier ein Problem mit Zeilenumbrüchen.
Ich lese eine Datei per BufferedReader als String ein. Jetzt werden die Zeilenumbrüche allerdings auch mit eingelesen. 
Wie kriegt man die am einfachsten gelöscht?


----------



## dieta (23. Mai 2006)

Das hier könnte klappen:

```
gelesen.replaceAll("\n", "");
```


----------



## Gast (23. Mai 2006)

dieta hat gesagt.:
			
		

> Das hier könnte klappen:
> 
> ```
> gelesen.replaceAll("\n", "");
> ```



das hab ich probiert, klappt leider nicht


----------



## reliC (23. Mai 2006)

Hi du,

Also wenn du einen String z.b einließt der s heißt mit oder wie auch immer dann machst das einfach so


```
s=s.replaceAll("\n","");
```

sollte so funktionieren


----------



## L-ectron-X (23. Mai 2006)

Das wird so nicht gehen, weil der Backslash maskiert werden muss:

```
s = s.replace("\\n", "");
```


----------



## byte (23. Mai 2006)

L-ectron-X hat gesagt.:
			
		

> Das wird so nicht gehen, weil der Backslash maskiert werden muss:
> 
> ```
> s = s.replace("\\n", "");
> ```



Das ist falsch, denn replace() will keine Regex. 

In diesem Fall funktioniert sowohl


```
s = s.replace("\n", "");
```

als auch


```
s = s.replaceAll("\n", "");
```

weil "\n" sowohl als String, als auch als Regex die selbe Bedeutung hat.


----------



## lhein (23. Mai 2006)

Also ich würde, um hier der Plattformunabhängigkeit Rechnung zu tragen das vordefinierte Linefeed in Java nutzen. Wenn nicht, dann tät ich auf jeden Fall alle \n und alle \r entfernen. (und das ganze nicht im selben Replace)

lr


----------



## Gast (23. Mai 2006)

sorry Leute aber das funktioniert alles nicht. Hier mein Code:

```
public static String readfile() {	
		final StringBuilder sb;
		sb = new StringBuilder();
	    String str="";
	    try {
	    	BufferedReader in = new BufferedReader(new FileReader("2.txt"));    	
	    	while((str = in.readLine()) != null ){
	    	     sb.append(str); 
	    	     sb.append("\n");
	    	} 	    	
		    str = sb.toString();
		    str.replaceAll("\\n", "");
	    	str.replaceAll("\\s", "");
	    	str.replaceAll("\n", "");
	    	str.replaceAll("\r", "");
	    	str.replaceAll("\\r", "");
		 }
		 catch(FileNotFoundException fnfe) {
			 System.out.println("Datei nicht gefunden!");
		 }
		 catch(IOException ioe) {
		     System.out.println("Fehler beim Lesen!");
		 }
		 return str;
	}
```

Wenn ich mir den String ausgeben lasse, sieht man dass immer noch Leerzeichen drin, die nur vom Zeilenumbruch stammen können, da der text sonst keine leerzeichen enthält.


----------



## lhein (23. Mai 2006)

Erklär mir mal den Sinn darin, dass Du immer einen Zeilenumbruch zum Buffer zufügst, wenn Du ihn garnicht haben willst? 
Ich hau mich wech  :bahnhof:  ???:L  :autsch:


----------



## Oskar (23. Mai 2006)

du must das Ergebnis der Methode replace deinem String zu weisen


```
str = str.replaceAll("\\n", "");
```

Dann sollte das funktionieren.


----------



## reliC (23. Mai 2006)

LR hat gesagt.:
			
		

> Erklär mir mal den Sinn darin, dass Du immer einen Zeilenumbruch zum Buffer zufügst, wenn Du ihn garnicht haben willst?
> Ich hau mich wech  :bahnhof:  ???:L  :autsch:



same question??? wieso wunderst dich dann das du ein leerzeichen drinn hat  :bahnhof:


----------



## Eminent (24. Mai 2006)

reliC hat gesagt.:
			
		

> LR hat gesagt.:
> 
> 
> 
> ...



Das nennt man dann wohl ABM. Ich will einen Zeilenumbruch entfernen und hab aber keinen, also mach ich mir einen rein


----------



## Java-Rookie (24. Mai 2006)

ihr seid voll gemein... solche fehler unterlaufen mir auch immer...


----------



## Leroy42 (24. Mai 2006)

Java-Rookie hat gesagt.:
			
		

> ihr seid voll gemein... solche fehler unterlaufen mir auch immer...


Wieso gemein  :shock: 
Darf man sich nicht mehr auf Kosten anderer ein bischen amüsieren?   

BTW: Ich will hier jetzt nicht erwähnen, welche Fehler mir immer unterlaufen...


----------

