2010-03-09 15 views
14

Ich lese eine Quelldatei in Java, aber wenn ich es (Sysout) drucke, sind die maskierten Zeichen nicht mehr maskiert. Wie kann ich Zeichen wie \n und \t in einem String in Java entkommen lassen?Wie entkomme ich eine Zeichenkette in Java?

+0

Können Sie Ihren aktuellen Code zum Lesen und Ausgeben veröffentlichen? – helios

+0

Wie liest du in der Quelldatei? Und wie genau druckst du sie? Aus Ihrer Beschreibung ist es für mich nicht offensichtlich, wo die Escape-Sequenzen in die Escape-Zeichen umgewandelt werden, die sie darstellen. –

Antwort

17

Sie sollten die StringEscapeUtils Bibliothek aus dem bekannten Apache Commons verwenden. Sie werden feststellen, dass es in Apache Commons viele weitere Angebote gibt, die Ihnen bei anderen Problemen in der Java-Entwicklung nützlich sein könnten, damit Sie das Rad nicht neu erfinden.

Der spezifische Aufruf, den Sie wollen, hat mit "Java-Escaping" zu tun; Der API-Aufruf lautet StringEscapeUtils.escapeJava(). In dieser Bibliothek gibt es auch viele andere flüchtige Dienstprogramme.

4

Verwendung:

\\n und \\t

Einige ein Backslash-Zeichen (\) einen Escape-Sequenz und haben eine besondere Bedeutung für den Compiler. In Ihrem Fall werden \n und \t als spezielle behandelt (Newline und Tab). Also müssen wir den Backslash umgehen, um n und t wörtlich zu behandeln.

+0

Die Datei, die ich lese, enthält '\ n', und ich möchte das programmatisch in' \\ n' konvertieren – Marius

5

Bei String s,

s = s.replace("\\", "\\\\"); 

Ersetzt alle \ mit \\.

+3

Das ist falsch, weil \ n als ein Zeichen behandelt wird, so dass das \ nicht gefunden wird \\ –

Verwandte Themen