-
ReplaceAll \n par \\n
Bonjour,
Je cherche à rempalcer \n par \\n mais je n'y arrive pas avec la méthode replaceAll.
J'ai cela :
blabla
blibli
Et je souhaite avoir :
blabla\
blibli
J'ai essayé cela :
s = s.replaceAll("\n","\\\\\n"), mais je n'arrive pas obtenir le bon résultat.
Merci pour votre aide.
-
Salut,
Heu... comment dire... ca marche chez moi :koi:
a++
-
Chez moi cela donne cela :
blabla
\
blibli
et pas cela :
blable\
blibli
-
Que contient exactement ta chaine d'origine ?
a++
-
Bonjour,
Oui tu a raison.
Ma chaine vient d'une base de données Oracle et je travaille sur un serveur JBOSS.
Quand je met dans le server .log ma chaine avant et après j'obtient cela :
@@ 2011-10-28 09:16:08,917 INFO [STDOUT] s=test v곩fication
굩
je peux rajoutꪩ顠᠊test 3
@@ 2011-10-28 09:16:08,917 INFO [STDOUT] s=test v곩fication
\
굩
\
je peux rajoutꪩ顠ᡜ
test 3
Je pense que c'est encodé en utf8.
Je ne sais pas si cela est du à un problème d'encodage ou autre ?
Merci.
-
Bonjour,
1- Tu as un problème d'encodage.
2- Pour le \n, ça dépend du système que tu utilises, utilise System.getProperty("line.separator").
A+.
-
J'ai donc fais cela :
System.out.println("s="+s);
s = s.toString().replaceAll(System.getProperty("line.separator"),"\\\\"+System.getProperty("line.separator"));
System.out.println("s="+s);
J'obitens maintenant cela :
test vérification\
été\
je peux rajoutéééé ààà
test 3
Cela n'a pas marché pour la troisième ligne, je n'arrive pas à comprendre pourquoi.
Merci.
-
Cela ne fonctionne toujours pas, je pense que tout est encodé en utf8.
Il faudrait le décodé alors ? Mais je ne vois pas comment faire.
Merci pour votre aide.
-
Bonjour,
J'ai réussi à cibler le problème :
Cela fonctionne bien avec ce code :
s = s.replaceAll("\n","\\\\\n");
Le problème se produit (doublage des retours chariots) lorsque je récupère mes données de la base de données.
Exemple : s1 et s2 2 chaines récupéres de la base de données.
s1 = toto\ntiti
s2 = tutu
je fais s = s1\ns2
Et j'obtient comme résultat :
toto\
\
titi\
tutu
au lieu de :
toto\
titi\
tutu
On remarque que le retour chariot mis via le code fonctionne bien mais pas ceux récupéré dans la base de données Oracle.
Merci pour votre aide.
-
Bonjour,
Utilise
Code:
s = s.replaceAll("[\n*\r*]+", "\\\\"+System.getProperty("line.separator"));
A+.
-
Merci beaucoup tout fonctionne correctement maintenant.