Zeilenumbruch \n?

B

ben56a

Ambitioniertes Mitglied
Threadstarter
hallo leute,

ich habe folgendes Problem und finde leider nirgends eine passende Antwort.

Ich lese einen String aus einer .txt Datei ein. In diesem String befindet sich unteranderem ein \n, was dafür sorgen soll, dass der String im TextView zweizeilig erscheint.

Wenn ich aber nun mit setText(myString) den gerade eingelesenen Text setze und den Emulator starte, wird mir in der TextView der komplette Text, samt \n angezeigt. Auch von einem Zeilenumbruch ist leider nichts zu sehen.

Ich habe auch schon die Variante \r\n versucht.
 
B

ben56a

Ambitioniertes Mitglied
Threadstarter
ben56a schrieb:
hallo leute,

ich habe folgendes Problem und finde leider nirgends eine passende Antwort.

Ich lese einen String aus einer .txt Datei ein. In diesem String befindet sich unteranderem ein \n, was dafür sorgen soll, dass der String im TextView zweizeilig erscheint.

Wenn ich aber nun mit setText(myString) den gerade eingelesenen Text setze und den Emulator starte, wird mir in der TextView der komplette Text, samt \n angezeigt. Auch von einem Zeilenumbruch ist leider nichts zu sehen.

Ich habe auch schon die Variante \r\n versucht.
Hat denn niemand eine Idee?
 
T

tobbbbi

Neues Mitglied
Also ich befürchte ja, dass das gar nicht so einfach geht.
Evtl. musst du dir eine eigene String-Routine basteln, die nach \n abfragt.
Du kannst dazu auch gut die vorhandenen Stringmethoden verwenden. (zB. substring, split etc.).
Was anderes fällt mir dazu leider auch nicht ein - ist halt schön umständlich.
 
S

smeat

Neues Mitglied
Wenn ich das richtig verstehe, hast du in die Datei das \n manuell reingeschrieben?
Beim Einlesen wird dann dein \n als 2 Zeichen erkannt. Also muss man nur alle "\\n" mit "\n" ersetzen: str = str.replace("\\n","\n")
 
B

ben56a

Ambitioniertes Mitglied
Threadstarter
super Tipp!
Folgende Variante hat zum Erforlg geführt: str = str.replace("\n","\n");

Danke
 
T

tobbbbi

Neues Mitglied
Krasses Verhalten! :huh:

Könnte mir das bitte mal jemand logisch erklären?
 
DieGoldeneMitte

DieGoldeneMitte

Experte
Das ist keine Hexerei:

\n ist eine Schreibweise für das Literal "Zeilenumbruch", die von bestimmten Parsern (wie zum Beispiel einem C oder Javacompiler) als Sonderschreibweise für eben diesen Zeilenumbruch verstanden wird. Wenn du den String "direkt" aus einem Datenstrom einliest, ist da kein Parser, der die Zeichenfolge "\" + "n" für Dich interpretiert. Da musst Du das schon selber machen (also Backslash gefolgt von n durch newline ersetzen).

Weil du diese Zeichen in deinem Javaprogramm eingibst, musst Du Backslash und newline natürlich wieder Quoten. Dehalb "\\" für den Backslash und "\n" für das newline.
 
Oben Unten