Zeilenumbruch \n?

B

ben56a

Ambitioniertes Mitglied
0
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.
 
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?
 
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.
 
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")
 
  • Danke
Reaktionen: ben56a
super Tipp!
Folgende Variante hat zum Erforlg geführt: str = str.replace("\n","\n");

Danke
 
Krasses Verhalten! :huh:

Könnte mir das bitte mal jemand logisch erklären?
 
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.
 

Ähnliche Themen

5
Antworten
22
Aufrufe
1.366
590239
5
D
  • Data2006
Antworten
14
Aufrufe
448
jogimuc
J
A
  • AnimaAngelo85
Antworten
1
Aufrufe
313
swa00
swa00
Zurück
Oben Unten