Utilisaton de String.replaceAll

Utilisaton de String.replaceAll - Java - Programmation

Marsh Posté le 10-02-2005 à 09:26:29    

Salut,
 
Je souhaite faire des enregistrement dans une bd, en sachant qu'il peut très bien y avoir des apostrophe dans les champs
Le pb que je rencontre est que logiquement en faisant insert into table(nom) values 'l'equipe' j'ai bien entendu une erreur dans l'execution sql.
Je sais que le caractère d'échappement est \ donc il faut transformer l'equipe en l\'equipe. C'est là que ca se corse
Je fait String st = "///'", System.out.println(st) me donne bien \' mais nom = nom.replaceAll("'", st) semble n'avoir aucun effet. Alors que nom = nom.replaAll("'", "a" ) par exemple donne bien le résultat attendu.
j'avoue que je suis perplexe
Merci

Reply

Marsh Posté le 10-02-2005 à 09:26:29   

Reply

Marsh Posté le 10-02-2005 à 11:12:11    

st = "///'", System.out.println(st) me donne bien \' ?
 
moi j'aurais mis nom.replaceAll ("'", "\\'" );

Reply

Marsh Posté le 10-02-2005 à 11:25:26    

Alos je confirme que st ="///'" donne bien \'
je suppose que le premier / sert de caractère d'échappement pour le second
J'ai également essayé ta méthode et j'ai le meme pb, à savoir que system.out.println donne bien '/ mais le replace ne fonctionne pas

Reply

Marsh Posté le 10-02-2005 à 11:31:33    

J'ai googlé, j'ai vu quelqu'un faire :
 
replace("I'm sure this works","\'","\\\'" );

Reply

Marsh Posté le 10-02-2005 à 12:12:22    

Il est optimiste s'il est sur que ça marche !
La méthode replace ne prends que deux arguments, doit s'appliquer à un objet String, et les arguments doivent être de type Char et non String.  
C'est étrange de voir que "\\'" et "\\\'" donnent bien \' quand on l'affiche, mais ne donne pas le même résultat dans un replaceAll

Reply

Marsh Posté le 10-02-2005 à 13:18:58    

Oui en fait c'est une fonction qu'il a créé lui, j'ai lu trop vite fait :
http://forums.devarticles.com/arch [...] ddSlashes-
 
Dans google j'ai tapé java addslashes sachant que addslashes c'est la fonction PHP qui cherche à faire ce que tu veux

Reply

Marsh Posté le 10-02-2005 à 16:23:20    

Ok, j'ai essayé ca fonctionne merci pour ton coup de main
Cela dit comme il le dit dans son intro, c'est quand même bizarrement foutu dans java

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed