2010-03-09 4 views
14

Je lis un fichier source en Java, mais quand je l'imprime (sysout), les caractères échappés ne sont plus échappés. Comment puis-je échapper des caractères comme \n et \t dans une chaîne en Java?Comment échapper une chaîne en Java?

+0

Pourriez-vous poster votre code actuel pour la lecture et la sortie? – helios

+0

Comment lisez-vous le fichier source? Et comment les imprimez-vous exactement? D'après votre description, il n'est pas évident pour moi où les séquences d'échappement sont converties en caractères d'échappement qu'elles représentent. –

Répondre

17

Vous devez utiliser la bibliothèque StringEscapeUtils de l'Apache bien connu Commons. Vous découvrirez qu'il y a beaucoup d'autres offres dans Apache Commons qui pourraient vous être utiles pour d'autres problèmes que vous rencontrez dans le développement Java, afin de ne pas réinventer la roue.

L'appel spécifique que vous voulez a à voir avec "Java escape"; l'appel API est StringEscapeUtils.escapeJava(). Il y a aussi beaucoup d'autres utilitaires qui s'échappent dans cette bibliothèque.

4

utilisant:

\\n et \\t

Certains caractères précédés d'une barre oblique inverse (\) forment une séquence d'échappement et ont une signification particulière au compilateur. Donc dans votre cas \n et \t sont traités comme spéciaux (nouvelle ligne et tab) respectivement. Donc, nous devons échapper à la barre oblique inverse pour faire traiter n et t littéralement.

+0

Le fichier que je suis en train de lire contient '\ n', et je voudrais le convertir par programme en' \\ n' – Marius

5

Compte tenu String s,

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

remplace toutes les \ avec \\.

+3

Ceci est faux parce que \ n est traité comme un caractère de sorte que le \ ne sera pas remplacé par \\ –

Questions connexes