2009-08-25 9 views

Antwort

1

Verwenden Sie einfach die Strings eigene replaceAll-Methode.

result = myString.replaceAll("\\n", "\n"); 

Wenn Sie jedoch alle Escape-Sequenzen abgleichen möchten, können Sie einen Matcher verwenden. Ein sehr einfaches Beispiel für die Verwendung von Matcher finden Sie unter http://www.regular-expressions.info/java.html.

Sie müssen nur die Zuordnung zu s ausgefeilter abhängig von der Anzahl und Art der Escapes machen, die Sie behandeln möchten. (Achtung dies ist Luft Code, ich bin kein Java-Entwickler)

+0

Wird das nicht ein Leistungsverlust sein, wenn ich einen replaceAll für jedes escapeable Zeichen, d. (http://java.sun.com/docs/books/tutorial/java/data/characters.html) –

+0

Entschuldigung, ich habe gerade einen anwser zu Ihrem einfachen Fall gezeigt (es ist ein Kniestoß, dass viele von uns tun doesn beantworte deine Frage nicht wirklich. Das ist der Grund, warum ich Sie auf die Matcher-Klasse aufmerksam mache, die Sie in Kombination mit einem StringBuffer in einem Durchgang erstellen können. – AnthonyWJones

3

Anthony ist 99% richtig - da Backslash ist auch ein reserviertes Zeichen in regulären Ausdrücken, braucht es ein zweites Mal entkommen sein:

result = myString.replaceAll("\\\\n", "\n"); 
0

Wenn Sie nicht möchten, dass alle möglichen Escape-Zeichen zur Liste Sie dies Eigenschaften Verhalten delegieren

String escapedText="This is tab \\t and \\rthis is on a new line"; 
    Properties prop = new Properties();  
    prop.load(new StringReader("x=" + escapedText + "\n")); 
    String decoded = prop.getProperty("x"); 
    System.out.println(decoded); 

Diese alle möglichen Zeichen handhaben

Verwandte Themen