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 :

[String] Comparaison de caractère un peu spéciale (simple et double quote)


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2002
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 31
    Points : 24
    Points
    24
    Par défaut [String] Comparaison de caractère un peu spéciale (simple et double quote)
    Bonjour à tous !
    Je souhaite tester l'égalité d'un charactère avec la simple cote " ' " pour le remplacer par une double cote '' '' ''.
    L'ennui c'est que pour un charactère, son contenu est déjà entouré de ' '.
    Mon compilo s'y perd alors les pieds quand je lui demande de tester l'égalité avec ' ' ' !!
    J'ai essayé les caractère de protection comme \ , mais ça n'a rien donné.
    Est ce que qq'un pourrait me dire comment formatter mon test ?!?
    Par avance merci !!

  2. #2
    En attente de confirmation mail

    Profil pro
    Inscrit en
    Mars 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 71
    Points : 116
    Points
    116
    Par défaut
    J'ai pas trop compris ton problème...
    Si je comprends bien tu as une String (genre requete SQL avec plein de quote et tu veux remplacer les quote ' par deux quote '' (!=") car quote en SQL indique un début ou une fin de chaine dans une requete alors que le doucle quote indique un quote simple.
    Mais tu as déjà dans ton texte parfois des quotes simples entourés de deux quote ''' ...
    tu as aucun autre moyen que de parcourir ta chaine de caractères caractères par caractères (ou directement aller au quote avec un indexOf("'")) et tester s'il est seul, (dans ce cas remplacement), s'il est déjà double, ou s'il est triple.

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2002
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 31
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par bahamouth
    J'ai pas trop compris ton problème...
    Si je comprends bien tu as une String (genre requete SQL avec plein de quote et tu veux remplacer les quote ' par deux quote '' (!=") car quote en SQL indique un début ou une fin de chaine dans une requete alors que le doucle quote indique un quote simple.
    Mais tu as déjà dans ton texte parfois des quotes simples entourés de deux quote ''' ...
    tu as aucun autre moyen que de parcourir ta chaine de caractères caractères par caractères (ou directement aller au quote avec un indexOf("'")) et tester s'il est seul, (dans ce cas remplacement), s'il est déjà double, ou s'il est triple.
    c'est cela sauf que je n'arrive pas à passer le commande pour tester l'agalité d'un charactère en cours ( dans un StringBuffer ) avec une cote simple ( ' ' ' ), car le compilo se prend les pieds dans le tapis avec un nombre impaires de ' !!
    je cherche donc à savoir comment ecrire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    StringBuffer strBuf = new StringBuffer(comment);
    		StringBuffer strBufOut = new StringBuffer();
    		for ( int i = 0;i< strBuf.length();i++)
    		{
    			if ( (strBuf.charAt(i)) == 'a' ){
    				strBufOut.append("''");
    			}		
    			else{
    				strBufOut.append(strBuf.charAt(i));
    			}
    		}
    en remplacant le 'a' de l'exemple par un ' ' ' !

  4. #4
    Membre à l'essai
    Inscrit en
    Août 2002
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 31
    Points : 24
    Points
    24
    Par défaut
    ou j'ai fumé la moquette !!
    La solution est toute simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    StringBuffer strBuf = new StringBuffer(comment);
    		StringBuffer strBufOut = new StringBuffer();
    		for ( int i = 0;i< strBuf.length();i++)
    		{
    			if ( (strBuf.charAt(i)) == '\'' ){
    				strBufOut.append("''");
    			}		
    			else{
    				strBufOut.append(strBuf.charAt(i));
    			}
    		}

  5. #5
    En attente de confirmation mail

    Profil pro
    Inscrit en
    Mars 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 71
    Points : 116
    Points
    116
    Par défaut
    si tu es sûr dans ta chaine de n'avoir que des quote seuls tu peux faire un replaceAll (méthode de la classe String).
    sinon tu peux jouer avec les indexOf("'") et les substring pour faire le même effet... dans ce cas tu travailles avec des chaines et non des caractères simples.
    TU as quel jdk?

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

Discussions similaires

  1. [RegEx] Simple ou double quote dans une expression régulière
    Par Khleo dans le forum Langage
    Réponses: 2
    Dernier message: 27/12/2010, 15h58
  2. Réponses: 2
    Dernier message: 29/04/2010, 15h33
  3. [Toutes versions] Requête SQL avec Simples et Doubles Quotes
    Par Roums dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 25/03/2010, 10h00
  4. Réponses: 14
    Dernier message: 30/11/2007, 11h58
  5. simple ou double quote
    Par Jasmine80 dans le forum Installation
    Réponses: 15
    Dernier message: 14/12/2006, 12h02

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