Replace et replaceAll [Résolu]

Messages postés
83
Date d'inscription
jeudi 24 juillet 2003
Dernière intervention
16 février 2005
- 16 déc. 2003 à 16:27 - Dernière réponse :
Messages postés
83
Date d'inscription
jeudi 24 juillet 2003
Dernière intervention
16 février 2005
- 2 févr. 2005 à 10:48
Bonjour je voudrais transformer une chaine de caractères possédant une apostrophe en autre possédant un \ juste avant l'apostrophe:
exemple

AVANT : "Monts d'or"
APRES : "Monts d\'or"

La fonction replace ne fonctionne qu'avec des caractères et \' représente deux caractères donc c'est une chaine => marche pas

chaine.replace('\'', '\\\'')


Avec la fonction replaceAll je n'y arrive pas non plus !

chaine.replaceAll("\'", "\\\'")


Il n'y a aucune différence entre avant et après !

Si quelqu'un a une solution à mon problème ...
Je sais que je pourrais également y arriver en utilisant les expressions régulières mais je ne sais pas m'en servir !!!

Merci

:question) 8-) 8-) koukounet 8-) 8-) :question)
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
83
Date d'inscription
jeudi 24 juillet 2003
Dernière intervention
16 février 2005
- 2 févr. 2005 à 10:48
3
Merci
Merci de m'avoir répondu !!!
J'avais complétement zappé ce problème et depuis plus d'un an je l'avais résolu par le remplacement par un espace !

J'ai regardé ta proposition, et j'ai encore trouvé une erreur :

Pour mon exemple Mont d'or, il m'enregistre dans la BD "Mont d'\or" !!!

J'ai donc essayé

chaine.replaceAll("\\'", "\\\'")

et là c'est bon !

Merci de votre aide

koukounet

Merci cs_coucounet 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de cs_coucounet
Messages postés
2116
Date d'inscription
samedi 8 novembre 2003
Statut
Contributeur
Dernière intervention
6 octobre 2012
- 16 déc. 2003 à 23:41
0
Merci
GodConan :clown)

chaine.replaceAll("\'", "\\\'")

ben deja sa ma pas l air detre ce que tu veux ;o) ...

essai sa :

chaine.replaceAll("'", "\\\'")

;o)

++
Commenter la réponse de cs_GodConan
Messages postés
83
Date d'inscription
jeudi 24 juillet 2003
Dernière intervention
16 février 2005
- 17 déc. 2003 à 15:36
0
Merci
Tu as tout à fait raison, je ne demandais pas ce que je voulais réellement !!! Mais j'ai essayé avec :

chaine.replaceAll("'", "\\\'") et même
chaine.replaceAll("'", "\'")

et rien de fonctionne !! Il ignore totalement les \ !!!

Par contre si je fais chaine.replaceAll("'", " ")
(je remplace les apostrophes par des espaces) là ça marche bien !!!

Je pense qu'il faut travailler avec les expressions réguilières, mais je ne sais pas me servir de cet outil !

Merci quand même et si tu as d'autres idées ...

:question) 8-) 8-) koukounet 8-) 8-) :question)
Commenter la réponse de cs_coucounet
Messages postés
2116
Date d'inscription
samedi 8 novembre 2003
Statut
Contributeur
Dernière intervention
6 octobre 2012
- 18 déc. 2003 à 20:08
0
Merci
GodConan :clown)

moi non plus pour tous dire ;o)
mais tu peu use un tokenizzer et concate de chaine ds une boucle sa prend 2 sec et 3 ligne au lieu d une mais sa marche ;o)...

++
Commenter la réponse de cs_GodConan
Messages postés
2
Date d'inscription
lundi 26 juillet 2004
Dernière intervention
1 février 2005
- 1 févr. 2005 à 15:15
0
Merci
Bonjour

Après plusieurs essais concernant d'autre caractères à remplacer, ceci devrai marcher :


chaine.replaceAll("\\'", \\\\')

++


eyes
Commenter la réponse de ceyes
Messages postés
2
Date d'inscription
lundi 26 juillet 2004
Dernière intervention
1 février 2005
- 1 févr. 2005 à 15:24
0
Merci
rectification :


chaine.replaceAll("\\'", "\\\\'")


eyes
Commenter la réponse de ceyes

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.