Java behandelt "\ n" nicht als neue Zeile, wenn es aus der Datenbankspalte abgerufen wird

8

Ich stehe vor einem seltsamen Problem.
Was ich mache ist, dass ich einige Werte in DB (Oracle 11g) als varchar2 abspeichere und die Werte in Java abrufe und mit den abgerufenen Daten arbeite.
Jetzt habe ich \ n als Wert in DB und bekomme es in Java mit rs.getString() . Ich bekomme den richtigen Wert \n .

%Vor%

Jetzt parse ich eine HTML-Seite und bekomme die ganze Seite als String.Schließen Sie an, dass die Seite 3 Zeilen hat, die jeweils einige Informationen wie folgt darstellen:

%Vor%

Jetzt werde ich "Dauer:" an eine Methode weitergeben, die mir "36 Minuten" zurückgibt.
Welche Logik ich benutze ist, dass ich den Index von bekomme Dauer: " und lesen, bis" \ n "gefunden wird. Code funktioniert gut, wenn ich den Zeilenumbruch als

deklariere %Vor%

Aber wenn ich es von DB bekomme, funktioniert es nicht. Ich weiß, dass ich das nicht in DB speichern muss, aber ich möchte diese Elemente nicht fest codieren. Also muss ich es nur in der DB speichern. Kann mir jemand dabei helfen ???

    
Anubhab 28.03.2013, 09:56
quelle

3 Antworten

10

Wenn beim Ausdruck von newLine in der Ausgabe \n angezeigt wird, müssen Sie die Zeichenkette, die Sie aus der DB erhalten, möglicherweise nicht anzeigen. Die Apache Commons Lang haben eine Methode dafür:

Ссылка

Sie müssten also einfach

anrufen %Vor%

Hoffe, das hilft

    
david 28.03.2013, 10:14
quelle
2

probiere das

aus %Vor%     
Ankit 28.03.2013 10:00
quelle
2

Das Problem ist, dass die Datenbank ein Escape-Zeichen zu Ihrer Zeichenfolge hinzufügt, so dass Sie mit \ n anstelle von \ n enden. Um dies zu beheben, könnten Sie einfach \\ n durch \ n ersetzen.

%Vor%

Wenn Sie dies drucken, erhalten Sie:
Dies ist eine Zeichenfolge aus der Datenbank  Dies sollte eine neue Zeile sein, ist es aber nicht. // Nun, es ist jetzt ..

    
Zelnoth 09.02.2015 10:37
quelle

Tags und Links