IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

ReplaceAll \n par \\n


Sujet :

Langage Java

  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut 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.

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Heu... comment dire... ca marche chez moi


    a++

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut
    Chez moi cela donne cela :
    blabla
    \
    blibli

    et pas cela :
    blable\
    blibli

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Que contient exactement ta chaine d'origine ?

    a++

  5. #5
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut
    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.

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    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+.

  7. #7
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut
    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.

  8. #8
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut
    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.

  9. #9
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut
    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.

  10. #10
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    s = s.replaceAll("[\n*\r*]+", "\\\\"+System.getProperty("line.separator"));
    A+.

  11. #11
    Membre éclairé
    Inscrit en
    Janvier 2006
    Messages
    716
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 716
    Par défaut
    Merci beaucoup tout fonctionne correctement maintenant.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 29
    Dernier message: 14/01/2013, 11h40
  2. tutoriel : La programmation de l'API Windows en C++ par Bob
    Par Aurelien.Regat-Barrel dans le forum Windows
    Réponses: 19
    Dernier message: 21/06/2008, 15h34
  3. [TImage] Transfert de Picture par pixels.
    Par H2D dans le forum Langage
    Réponses: 9
    Dernier message: 25/10/2003, 15h37
  4. Affichage en passant par un buffer...
    Par Sirotilc dans le forum MFC
    Réponses: 5
    Dernier message: 27/05/2002, 22h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo