[Java] Remplacer un string par un string (Résolu)

Remplacer un string par un string (Résolu) [Java] - Java - Programmation

Marsh Posté le 27-08-2002 à 16:32:57    

salut,
 
dans une appli, je récupère un champ texte d'un formulaire, et dedans je voudrias remplcer certains mots par d'autres.
 
Le logiciel que j'utilise n'utilise pas jdk 1.4, donc la fonction replaceAll ne marche pas.
 
J'ai bien récupérer une fonction qui remplace un char par un string mais j'arrive pas à l'adapter à mon problèe (string par string) :

Code :
  1. public String replaceBy(WOComponent benevole) {
  2.         /* Permet de remplacer les tags par les champs de la table correspondant */
  3.         StringBuffer buff = new StringBuffer(contenu);
  4.        
  5.         char lettre_interdite = 'a';
  6.         String plus = "ou";
  7.         for(int i=0;i<buff.length();i++) {
  8.             if(buff.charAt(i) == lettre_interdite) {
  9.                 buff.deleteCharAt(i);
  10.                 buff.insert(i,plus);
  11.             }
  12.         }
  13.         contenu = buff.toString();
  14.         return (contenu);
  15.     }


 
 
merci de l'aide


Message édité par squall36 le 27-08-2002 à 17:19:49
Reply

Marsh Posté le 27-08-2002 à 16:32:57   

Reply

Marsh Posté le 27-08-2002 à 16:42:06    

squall36 a écrit a écrit :

Le logiciel que j'utilise n'utilise pas jdk 1.4, donc la fonction replaceAll ne marche pas.



C'est quoi ton logiciel  :??:  
Ne me dit pas que tu utilisess Visual J++ ? [:totoz]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 27-08-2002 à 16:43:02    

une solution serait d'ajouter des boucles (un string est une succession de caractère)
une deuxième serait de remplacer le test sur ton caractère interdit par un equals() ...

Reply

Marsh Posté le 27-08-2002 à 16:43:36    

Harkonnen a écrit a écrit :

C'est quoi ton logiciel  :??:  
Ne me dit pas que tu utilisess Visual J++ ? [:totoz]




Je pense qu'il veut dire qu'il utilise un jdk < 1.4
 
c'est ça hein ?

Reply

Marsh Posté le 27-08-2002 à 16:49:02    

Code :
  1. public static String replace(String s, String replaced, String replacing) {
  2.     StringBuffer tmp = new StringBuffer(s);
  3.     int i = 0, debut, fin;
  4.     char c = replaced.charAt(0);
  5.     while (i < tmp.length()) {
  6.  while ((i < tmp.length()) && (tmp.charAt(i) != c))
  7.    i++;
  8.  debut = i;
  9.  i++;
  10.  fin = 1;
  11.  while ((i < tmp.length()) && (fin < replaced.length()) && (tmp.charAt(i) == replaced.charAt(fin))) {
  12.    fin++;
  13.    i++;
  14.  }
  15.  if ((i <= tmp.length()) && (fin == replaced.length())) {
  16.    tmp.replace(debut, debut+fin, replacing);
  17.    i = debut + replacing.length();
  18.  }
  19.     }
  20.     return tmp.toString();
  21.   }

Reply

Marsh Posté le 27-08-2002 à 16:53:33    

on commencera à la connaitre cette methode :D


Message édité par --greg-- le 27-08-2002 à 16:53:40

---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 27-08-2002 à 17:01:34    

--greg-- a écrit a écrit :

on commencera à la connaitre cette methode :D




c'est clur ! Mais y arrêtes pas de la demander !
 
si on avait un site, on pourrait la mettre en ligne  :sarcastic:   :(

Reply

Marsh Posté le 27-08-2002 à 17:02:53    

La class String en, Java n'a pas de méthode "Replace" comme en JavaScript :??:

Reply

Marsh Posté le 27-08-2002 à 17:03:05    

j'utilise WebObject, un truc sous Mac, mais je sais pas quel compilateur ça utilise,  mais en tout cas pas 1.4...
 
Merci pour ton code Benou, je vais tester si ça marche là dessus, sinon je crois que j'en ai trouvé un autre que je vais tester aussi !
 
 
:jap:

Reply

Marsh Posté le 27-08-2002 à 17:04:02    

MagicBuzz a écrit a écrit :

La class String en, Java n'a pas de méthode "Replace" comme en JavaScript :??:




 
bah si, mais à partir du jdk1.4, mais c'est pas ça que j'ai...

Reply

Marsh Posté le 27-08-2002 à 17:04:02   

Reply

Marsh Posté le 27-08-2002 à 17:11:58    

squall36 a écrit a écrit :

 
Merci pour ton code Benou, je vais tester si ça marche là dessus, sinon je crois que j'en ai trouvé un autre que je vais tester aussi !
:jap:




T'inquiète ca marche ! ca a déjà été testé par quelques forumeurs ;)

Reply

Marsh Posté le 27-08-2002 à 17:12:30    

benou a écrit a écrit :

 
c'est clur ! Mais y arrêtes pas de la demander !
 
si on avait un site, on pourrait la mettre en ligne  :sarcastic:   :(  



ça vient, ça vient, mais j'ai pas le temps pour l'instant. Je vous demande un peu de patience, sinon mes examens vont en pâtir. :(


---------------
Le site de ma maman
Reply

Marsh Posté le 27-08-2002 à 17:12:39    

MagicBuzz a écrit a écrit :

La class String en, Java n'a pas de méthode "Replace" comme en JavaScript :??:




bha non. Mais tu sais java et javascript ca a pas grand chose à voir à part le nom et la syntaxe (qui est elle même héritée du C) ...

Reply

Marsh Posté le 27-08-2002 à 17:13:38    

bah vi sans doute, mais ils utilisaient sans doute pas WebObject... dans le genre des fois ça marche et des fois ça marche pas que tu sais pas pourquoi, c'est très fort WebObject  :D

Reply

Marsh Posté le 27-08-2002 à 17:18:04    

benou a écrit a écrit :

 
T'inquiète ca marche ! ca a déjà été testé par quelques forumeurs ;)




 
 
ouaip, c bon!!  encore merci, du coup, j'ai presque fini ma semaine :D
:jap:
 
je vous mets quand même l'autre solution que j,avais trouvée, mais pas testée :

Code :
  1. static String replace(String str, String pattern, String replace) {
  2.         int s = 0;
  3.         int e = 0;
  4.         StringBuffer result = new StringBuffer();
  5.    
  6.         while ((e = str.indexOf(pattern, s)) >= 0) {
  7.             result.append(str.substring(s, e));
  8.             result.append(replace);
  9.             s = e+pattern.length();
  10.         }
  11.         result.append(str.substring(s));
  12.         return result.toString();
  13.     }


 
mais comme je crois que indexOf, c'est qu'à partir du 1.4, ça m'aurait pas servi à grand chose...

Reply

Marsh Posté le 27-08-2002 à 17:18:39    

Cherrytree a écrit a écrit :

ça vient, ça vient, mais j'ai pas le temps pour l'instant. Je vous demande un peu de patience, sinon mes examens vont en pâtir. :(  




t'inquiête pas, on a compris ...  
occupe toi de ton projet. Le site c'est vraiment secondaire par rapport à ca ! on en est tous conscient !

Reply

Marsh Posté le 27-08-2002 à 17:19:11    

benou a écrit a écrit :

 
t'inquiête pas, on a compris ...  
occupe toi de ton projet. Le site c'est vraiment secondaire par rapport à ca ! on en est tous conscient !



au lieu de jouer et blablater. :fou:


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 27-08-2002 à 17:19:45    

squall36 a écrit a écrit :

 
 
mais comme je crois que indexOf, c'est qu'à partir du 1.4,


euh non


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 27-08-2002 à 17:21:11    

--greg-- a écrit a écrit :

au lieu de jouer et blablater. :fou:



XLIX XLIX, voilà j'ai fermé mon explorer en 2 XLIX. :D


---------------
Le site de ma maman
Reply

Marsh Posté le 27-08-2002 à 17:22:19    

--greg-- a écrit a écrit :

euh non




 
oops.. en fait c'est pour StringBuffer que c'est à partir du 1.4 (vérifié dans l'API :D )

Reply

Marsh Posté le 27-08-2002 à 17:23:02    

squall36 a écrit a écrit :

 
 
mais comme je crois que indexOf, c'est qu'à partir du 1.4, ça m'aurait pas servi à grand chose...




nan, le indexOf avec un char (ou même avec une String)est ancien (c'est marqué dans la javadoc (param since).
 
mais leur truc est vraiment pas optimisé : ils font plein de substring ! beurk !

Reply

Marsh Posté le 27-08-2002 à 17:32:30    

benou a écrit a écrit :

 
nan, le indexOf avec un char (ou même avec une String)est ancien (c'est marqué dans la javadoc (param since).
 
mais leur truc est vraiment pas optimisé : ils font plein de substring ! beurk !




 
tout le monde ne peut pas être une star... :D

Reply

Marsh Posté le 27-08-2002 à 17:48:04    

squall36 a écrit a écrit :

 
tout le monde ne peut pas être une star... :D




 :ange:  :)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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