"\n" interpretieren

nes

Grünschnabel
Hallo allseits,

manchmal scheitert man an den primitivsten Sachen :suspekt:

Ich habe in einem String "\n" stehen - also die beiden Zeichen "\" und "n", und möchte daß diese korrekt als Zeilenumbruch interpretiert bzw. in diese konvertiert wird. Ich hab eine kurze Demoklasse geschrieben, um das Problem zu verdeutlichen:

Code:
public class Demo {

	public static void main(String[] args) {
		StringBuffer buffer = new StringBuffer();
		buffer.append("Ein Test\\nüber mehrere Zeilen");

                // Gibt erwartungsgemaess "Ein Test\nüber mehrere Zeilen" aus
		System.out.println(buffer);
		
                // Jetzt würde ich gerne die beiden Zeichen "\" und "n"
                // als 'wirklichen' Zeilenumbruch interpretieren

		// So gehts leider nicht - Ausgabe ist unverändert
		String s1 = new String(buffer);
                System.out.println(s1);

                // Warum geht das da auch nicht ?
                // Gibt nach wie vor "Ein Test\nüber mehrere Zeilen" aus!
		System.out.println(s1.replaceAll("\\n", "\n"));
	}
}
(Das ist natuerlich nur ein Beispiel - in Wirklichkeit bekomme ich den String über ein XML-File)

Any hints?

Danke im vorraus, nes
 
Hi nes!

Probier statt
Code:
System.out.println(s1.replaceAll("\\n", "\n"));
mal
Code:
System.out.println(s1.replace("\\n", "\n"));

MfG
Sebastian
 
Hallo seicke!

s1.replace klappt nicht, die Argumente von replace sind:
replace(char, char);

... ich brauche aber (String, String).

Ich verstehe wirklich nicht, warum mein "replaceAll" von oben nicht klappt - schaut doch gut aus?

Bzw. weiss ich auch nicht, ob das (wenn's den klappen würde) nicht nur die zweitbeste Lösung ist. Gibt es keine Möglichkeit "\n" irgendwie 'intern' zu konvertieren, wie es z.b. bei:

String s2 = "Zeile 1\nZeile 2";

automatisch geschieht?

lg., nes
 
Hallo

Ich habs bis jetzt immer so gehandhabt

System.out.println("Testtext \nMehrText")

Ich lasse vor dem \n einen freiraum! Vielleicht hilfts.

MFG Rmi
 
Zurück