Zeilenumbruch \n?

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von ben56a, 06.01.2011.

  1. ben56a, 06.01.2011 #1
    ben56a

    ben56a Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    91
    Erhaltene Danke:
    0
    Registriert seit:
    15.08.2010
    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.
     
  2. ben56a, 07.01.2011 #2
    ben56a

    ben56a Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    91
    Erhaltene Danke:
    0
    Registriert seit:
    15.08.2010
    Hat denn niemand eine Idee?
     
  3. tobbbbi, 07.01.2011 #3
    tobbbbi

    tobbbbi Junior Mitglied

    Beiträge:
    27
    Erhaltene Danke:
    3
    Registriert seit:
    06.01.2011
    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.
     
  4. smeat, 09.01.2011 #4
    smeat

    smeat Neuer Benutzer

    Beiträge:
    7
    Erhaltene Danke:
    2
    Registriert seit:
    25.12.2010
    Phone:
    Motorola Defy
    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")
     
    ben56a bedankt sich.
  5. ben56a, 09.01.2011 #5
    ben56a

    ben56a Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    91
    Erhaltene Danke:
    0
    Registriert seit:
    15.08.2010
    super Tipp!
    Folgende Variante hat zum Erforlg geführt: str = str.replace("\n","\n");

    Danke
     
  6. tobbbbi, 10.01.2011 #6
    tobbbbi

    tobbbbi Junior Mitglied

    Beiträge:
    27
    Erhaltene Danke:
    3
    Registriert seit:
    06.01.2011
    Krasses Verhalten! :huh:

    Könnte mir das bitte mal jemand logisch erklären?
     
  7. DieGoldeneMitte, 10.01.2011 #7
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Beiträge:
    1,230
    Erhaltene Danke:
    256
    Registriert seit:
    05.02.2010
    Phone:
    Nexus 5X
    Tablet:
    Nexus 7 (2013)
    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.
     

Diese Seite empfehlen