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 :

Petit casse tête amusant avec les caractères d'échappement


Sujet :

Langage Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 64
    Points : 78
    Points
    78
    Par défaut Petit casse tête amusant avec les caractères d'échappement
    Voila le scénario:


    - Une chaine de caractère Java contient des "quotes" (ce caractère là: ' )
    - Cette chaine de caractère est transformée en objet JSON par la methode "toJsonObject()".
    -La notation d'objet JSON utilise ces quotes comme délimiteurs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MyString chaine="c'est une chaine de caractères";
    System.out.println(chaine.toJsonObject("clé"));
    Il convient donc d'échapper les quotes au sein de l'objet JSON.
    Idéalement l'objet JSON ressemblerait à quelque chose comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    json = {'clé':'l\'objetcontenant des quotes'}
    (notez l'antislash pour l'échappement)

    La question est la suivante:
    Que doit on écrire pour remplacer les occurences de ' par \' ?
    je pensais à
    chaine = chaine.replace('\'','\\\'');
    mais javac ne le compile pas...

  2. #2
    Membre habitué Avatar de jean.2edi
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 106
    Points : 131
    Points
    131
    Par défaut
    Il y a deux méthodes String.replace : une pour le remplacement d'un caractère par un autre, une pour le remplacement d'une chaîne de caractères par une autre. Tu as utilisé la première mais tu veux remplacer un caractère par 2 et le compilateur ne comprend pas ce qu'est le caractère \' ! Il faut que tu écrives :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chaine = chaine.replace("'", "\\'");

Discussions similaires

  1. QRegExp fâché avec les caractères d'échappement
    Par Ah_Kin dans le forum Débuter
    Réponses: 2
    Dernier message: 26/12/2012, 17h16
  2. [PHP 5.2] Petit casse-tête pour les amateurs de tableaux
    Par renaud26 dans le forum Langage
    Réponses: 8
    Dernier message: 07/02/2011, 15h25
  3. Réponses: 5
    Dernier message: 04/09/2005, 12h34
  4. [SAX] Problème avec les caractères spéciaux
    Par abdou.sahraoui dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 18/07/2005, 10h07
  5. [XSLT]petit(s) pb(s) avec les xmlns et <xsl:namespace-ali
    Par Swoög dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 08/01/2005, 17h04

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