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 :

Remplacer \ par \\ dans une string?


Sujet :

Langage Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 60
    Points : 46
    Points
    46
    Par défaut Remplacer \ par \\ dans une string?
    J'ai besoin de replacer les backslash par des doubles backslash dans un path

    exemple:

    C:\Program Files\Java

    par

    C:\\Program Files\\Java


    maString.replaceAll("\\", "\\\\");

    java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
    \
    ^



    Y'a t'il une autre solution? autre que parcourir ma chaine caractere par caractere dans un For?

    Merci,
    g0ldenro

  2. #2
    zev
    zev est déconnecté
    Membre actif
    Inscrit en
    Octobre 2004
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 204
    Points : 220
    Points
    220
    Par défaut
    Faut doubler encore une fois.
    Une histoire que replace passe 2 fois le bidule donc faut escaper 2 fois:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    		String toto = "j'ai ça \\ et ça \\  ";
    		System.out.println(toto);
    		toto = toto.replaceAll("\\\\","\\\\\\\\");
    		System.out.println(toto);

  3. #3
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411

  4. #4
    Membre expérimenté Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Points : 1 635
    Points
    1 635
    Par défaut
    Bonjour

    La transformation c'est bien \ -> \\

    Donc ceci serait plus approprié

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    toto = toto.replaceAll("\\\\","\\\\");
    Le deuxième argument n'est évidemment pas une expression rationnelle.

    Sinon on va faire \ -> \\\\

  5. #5
    zev
    zev est déconnecté
    Membre actif
    Inscrit en
    Octobre 2004
    Messages
    204
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 204
    Points : 220
    Points
    220
    Par défaut
    yann2, je proteste J'ai testé ça ne marche pas ton truc :

    j'ai ça \ et ça \
    j'ai ça \ et ça \

    Alors que moi j'ai bien :

    j'ai ça \ et ça \
    j'ai ça \\ et ça \\

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 60
    Points : 46
    Points
    46
    Par défaut
    replaceAll("\\\\","\\\\\\\\") marche pour moi!

    Merci zev!

  7. #7
    Membre expérimenté Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Points : 1 635
    Points
    1 635
    Par défaut
    re,

    Bon ben je vais réviser


  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 60
    Points : 46
    Points
    46
    Par défaut
    Bon finalement le problème n'est pas vraiment résolu...

    En gros j'ai un path qui se trouve dans un vecteur, je dois faire un update sur une base de données postgresql qui contient le path qui se trouve dans mon vecteur.

    Je ne sais pas si c'est clair mais peu importe. Quand j'update sur la base de données et que je vais voir dans la table sur postgresql, mon path contient des carrés noirs au lieu des \

    Je crois que la solution est d'envoyer un (char)13 au lieu d'un "\" dans mon path. Cependant cela me semble impossible car on ne peut faire de cast de char en String avec Java.

    Quelqu'un aurait une idée?

    Merci,
    g0ldenrno

  9. #9
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Character c=new Character('\\');
    String monAntiSlash=c.toString();
    Si si on peut

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 60
    Points : 46
    Points
    46
    Par défaut
    Parfait merci!

    Je croyais qu'il fallait absolument faire (char)int

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

Discussions similaires

  1. Remplacer . par , dans une colonne.
    Par kythi dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/03/2013, 10h46
  2. Remplacer un caractère par un autre dans une String
    Par djack44 dans le forum Débuter avec Java
    Réponses: 7
    Dernier message: 12/03/2008, 15h16
  3. [PostgreSQL] [PostGreSQL] Trouver les ' et les remplacer par \' dans une chaine
    Par bossLINDROS dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 03/05/2007, 10h31
  4. Remplacer des balises par des valeurs dans une String
    Par RadicalBob dans le forum Langage
    Réponses: 4
    Dernier message: 26/04/2007, 15h22
  5. Trouver ' et remplacer par \' dans une chaîne
    Par micatmidog dans le forum Général Python
    Réponses: 9
    Dernier message: 23/12/2005, 16h09

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