Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
982 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Remplacer le caractère ' dans une String

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Remplacer le caractère ' dans une String

n°958752
ksavieras
Posté le 21-01-2005 à 17:09:17  profilanswer
 

Salut
 
Je voudrais remplacer le caractère ' par % dans un objet de type String
J'ai essayé !
s.replace("'","%" ); : erreur de compilation, la fonction doit prendre des char
s.replace('\'','%'); compil ok, mais le résultat n'est pas bon, la chaine n'est pas modifié
Y a t'il une solution ?
 
Merci d'avance

mood
Publicité
Posté le 21-01-2005 à 17:09:17  profilanswer
 

n°958757
dsls
Posté le 21-01-2005 à 17:12:01  profilanswer
 

Code :
  1. s=s.replace('\'','%');


Message édité par dsls le 21-01-2005 à 17:12:11
n°958762
ksavieras
Posté le 21-01-2005 à 17:16:24  profilanswer
 

merci

n°1125924
compuman10​1
Posté le 21-06-2005 à 10:03:49  profilanswer
 

J'ai le même problème pour échapper le Quotes lors de l'insertion en base de données.
 
Le problème est que repace prend un caractère et j'ai besoin de doubler le quotes pour que Oracle le prenne.

n°1125936
souk
Tourist
Posté le 21-06-2005 à 10:21:52  profilanswer
 

ksavieras a écrit :

Salut
 
Je voudrais remplacer le caractère ' par % dans un objet de type String
J'ai essayé !
s.replace("'","%" ); : erreur de compilation, la fonction doit prendre des char
s.replace('\'','%'); compil ok, mais le résultat n'est pas bon, la chaine n'est pas modifié
Y a t'il une solution ?
 
Merci d'avance


 
c'est normal, les chaines de caracteres sont immuable :o
s=s.replace('\'','%'); aurait marché  [:spamafote]  

n°1125938
souk
Tourist
Posté le 21-06-2005 à 10:22:43  profilanswer
 

compuman101 a écrit :

J'ai le même problème pour échapper le Quotes lors de l'insertion en base de données.
 
Le problème est que repace prend un caractère et j'ai besoin de doubler le quotes pour que Oracle le prenne.


 
 
utilise des PreparedStatement plutot, et laise ton Driver faire le boulot à ta place ! ce n'est pas à toi d'échapper ces caractères !

n°1125965
compuman10​1
Posté le 21-06-2005 à 10:43:28  profilanswer
 

souk a écrit :

utilise des PreparedStatement plutot, et laise ton Driver faire le boulot à ta place ! ce n'est pas à toi d'échapper ces caractères !


OK je vais voir :)
 
Merci

n°1125994
compuman10​1
Posté le 21-06-2005 à 10:57:00  profilanswer
 

J'ai ca :
 
            dbStatement = dbConnection.createStatement();
            dbStatement.setEscapeProcessing(true);
            dbResultSet = dbStatement.executeQuery(dbQuery);
 
La dbQuery est une chaîne de type String dans laquelle je stocke la requête à exécuter.
Le EscapeProcessing n'a pas l'air d'être pris en compte et je me demande comment il peut savoir quel tel Quotes est un séparateur de contenu ( Exemple = WHERE valeur = 'chaine' ) ou un caractère à échapper (Problème lorsque chaine est de la forme : "J'habite Lyon" )
 
Tu vois mon problème ? :$

n°1126044
souk
Tourist
Posté le 21-06-2005 à 11:22:03  profilanswer
 

il faut utiliser un PreparedStatement je t'ai dit [:dawa]
 
et toi tu fais un Statement ...
 

Code :
  1. PreparedStatement pstmt = dbConnection.prepareStatement("update chose set truc = ? where machin like ?" );
  2. pstmt.setString(1,maChaineAvecDesCaracteresTordus)
  3. pstmt.setString(2,uneAutreChaine);
  4. int nbRowUpdated = pstmt.executeUpdate();
  5. System.out.println(nbRowUpdated+" lignes modifiées" );


 
voila
 
PS: PreparedStatement

n°1126057
compuman10​1
Posté le 21-06-2005 à 11:26:44  profilanswer
 

ah merci beaucoup, ca nécessite que je change pas mal l'architecture de mon programme, je générais les requêtes et je les envoyais à une couche d'abstraction du driver JDBC...
 
J'ai essayé d'échapper les caractères à la main mais que ce soit en doublant le quotes ou en ajoutant un anti slash j'ai le même problème.
 
Il n'est pas possible de jouer avec les chaines pour échapper ?

mood
Publicité
Posté le 21-06-2005 à 11:26:44  profilanswer
 

n°1126075
souk
Tourist
Posté le 21-06-2005 à 11:35:54  profilanswer
 

c'est possible, mais c'est mal :o
 
le jour ou tu change de base de données ou autre, les caractères à échapper vont pas forcément etre les memes, etc... échapper les caractères, ce n'est pas à toi de le faire, c'est au Driver [:spamafote]

n°1126080
jeromejans​on
Posté le 21-06-2005 à 11:37:49  profilanswer
 

sinon il faut essayer replaceAll il me semble ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Remplacer le caractère ' dans une String

 

Sujets relatifs
Débutant: remplacer un "null" par un "zero" ?Formatage d'un caractère spécial dans une chaine
Parser un string (Date)showMessageDialog(...,String s,...) et mise en forme
Convertir une une string base 2 en string base 16Passer de char array a string
Comparer contenu cellule excell et stringoperation sur string
obtenir une chaine de caractère avec System.in.read()[Java] remplacer 1 séquence de caractère par 1 autre dans un String
Plus de sujets relatifs à : Remplacer le caractère ' dans une String


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR