[JAVA] Pbl de recherche d occurences

Pbl de recherche d occurences [JAVA] - Java - Programmation

Marsh Posté le 28-05-2002 à 10:49:49    

Salut à vous,
 
je voudrais effectuer des recherches d occurences ds un String, pour remplacer certaines chaines...
 
avec la version 1.4 il y a String.replaceAll(String, String);
 
Mais avec la version 1.2 ca ne marche pas.
 
Donc j ai créé la fonction a la main : avec des indexOf et substring...
 
Le probleme est que si je recherche le mot java, la recherche tient compte de la casse. c a d que toutes les occurences de <b>J</b>ava sont ignorées.
Alors comment faire pour ignorer la casse ds ma recherche ???
 
Merci a vous  
Titi ;-}

Reply

Marsh Posté le 28-05-2002 à 10:49:49   

Reply

Marsh Posté le 28-05-2002 à 10:53:42    

titi76 a écrit a écrit :

Salut à vous,
 
je voudrais effectuer des recherches d occurences ds un String, pour remplacer certaines chaines...
 
avec la version 1.4 il y a String.replaceAll(String, String);
 
Mais avec la version 1.2 ca ne marche pas.
 
Donc j ai créé la fonction a la main : avec des indexOf et substring...
 
Le probleme est que si je recherche le mot java, la recherche tient compte de la casse. c a d que toutes les occurences de <b>J</b>ava sont ignorées.
Alors comment faire pour ignorer la casse ds ma recherche ???
 
Merci a vous  
Titi ;-}  




 
Et le méthode replace de StringBuffer, c pas bien !?

Reply

Marsh Posté le 28-05-2002 à 11:00:01    

connais pas
je regarde et te dis apres
merci

Reply

Marsh Posté le 28-05-2002 à 11:13:17    

el_gringo a écrit a écrit :

 
Et le méthode replace de StringBuffer, c pas bien !?  




bha ca a un peut rien à voir ...
 
sinon pour ton problème, bha ca dépend de la façon dont tu as écrit ta méthode ... mais j'imagine qu'à un moment tu testes l'égalité de caractères. Plutot que de faire un bête ==, tu fais une Character.toLowerCase(char1) == Character.toLowerCase(char2)


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 28-05-2002 à 11:16:06    

benou a écrit a écrit :

 
bha ca a un peut rien à voir ...
 
sinon pour ton problème, bha ca dépend de la façon dont tu as écrit ta méthode ... mais j'imagine qu'à un moment tu testes l'égalité de caractères. Plutot que de faire un bête ==, tu fais une Character.toLowerCase(char1) == Character.toLowerCase(char2)  




 
Ha ouais.
Désolé pour le faux espoir à toi titi... :jap:

Reply

Marsh Posté le 28-05-2002 à 11:22:52    

et non ca marche pas il me fait toujours la distinction entre majuscule et minuscule
 
;-{

Reply

Marsh Posté le 28-05-2002 à 11:24:21    

y a pas un autre moyen que de tester caractere par caractere ??

Reply

Marsh Posté le 28-05-2002 à 11:26:21    

si une ame bien veilante peut m aider voici mon code
public String remplace ( String str, String oldstr, String newstr)
 {
  int taille = oldstr.length();
  String nouveau = new String();
  StringBuffer buff = new StringBuffer(str);
  int deb = 0;
  int ici = buff.indexOf(oldstr, deb);
   
  while (ici != -1)
  {
   nouveau += buff.substring(deb, ici);
   nouveau += newstr;
   deb = ici+taille;
   ici = buff.indexOf(oldstr, deb);
  }
   
  nouveau += buff.substring(deb);
  return nouveau;
 }

Reply

Marsh Posté le 28-05-2002 à 11:38:43    

titi76 a écrit a écrit :

si une ame bien veilante peut m aider voici mon code
public String remplace ( String str, String oldstr, String newstr)
 {
  int taille = oldstr.length();
  String nouveau = new String();
  StringBuffer buff = new StringBuffer(str);
  int deb = 0;
  int ici = buff.indexOf(oldstr, deb);
   
  while (ici != -1)
  {
   nouveau += buff.substring(deb, ici);
   nouveau += newstr;
   deb = ici+taille;
   ici = buff.indexOf(oldstr, deb);
  }
   
  nouveau += buff.substring(deb);
  return nouveau;
 }  




 
Mais, pour ton pb de majuscules, t'as qu'a utiliser la méthode toLowerCase de String !

Reply

Marsh Posté le 28-05-2002 à 11:42:14    

j y ai pense mais si je fais ca je ne vais pas trouve les occurences en majuscule ....
 
par exemple si je cherche JAVA -> je le transforme en java et apres je recherche java. je ne vais pas trouvé les occurences de Java, JAVA, jAva, ...

Reply

Marsh Posté le 28-05-2002 à 11:42:14   

Reply

Marsh Posté le 28-05-2002 à 11:43:49    

Bin faut savoir ce que tu veux. D'un coté tu veux pas de casse et de l'autre t'en veux.
 
 :heink:  
 
Si tu t'en fous tu transformes TOUT en minuscules (et donc JAVA deviendra java et ca fonctionnera).


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 28-05-2002 à 11:44:55    

titi76 a écrit a écrit :

j y ai pense mais si je fais ca je ne vais pas trouve les occurences en majuscule ....
 
par exemple si je cherche JAVA -> je le transforme en java et apres je recherche java. je ne vais pas trouvé les occurences de Java, JAVA, jAva, ...  




 
Mais, convertis les 2 String à comparer !

Reply

Marsh Posté le 28-05-2002 à 11:47:23    

grilled :D


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 28-05-2002 à 11:49:11    

merci tu m as donne une idee
en fait je vais faire une copie de mon texte en minuscule, recuperer les index des occurences et faire le remplacement ds mon original
 
titi ;-}

Reply

Marsh Posté le 28-05-2002 à 11:50:04    

DarkLord a écrit a écrit :

grilled :D  




 
Oui, mais moi c'est mieux expliqué, plus clair, plus concis.
Non, vraiement, je préfère ma version ! :ange:

Reply

Marsh Posté le 28-05-2002 à 11:50:41    

el_gringo a écrit a écrit :

 
 
Oui, mais moi c'est mieux expliqué, plus clair, plus concis.
Non, vraiement, je préfère ma version ! :ange:  




 
  :sleep:  :hello:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 28-05-2002 à 14:33:04    

je comprend pas ton code : tu utilises un stringBuffer uniquement pour faire un substring ??? et pluis tu fais des += ...
 
tu ferais mieux de faire le contraire : utiliser le StringBuffer pour stocker ta chaine resultat, et faire le substring sur la chaine d'origine ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 28-05-2002 à 14:33:56    

remarque : le += c'est pas du tout efficace en Java !!!
mais alors pas du tout du tout !
des que tu as une boucle avec des += de chaines dedans il faut remplacer ca par un StringBuffer !


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 28-05-2002 à 15:26:31    

benou a écrit a écrit :

remarque : le += c'est pas du tout efficace en Java !!!
mais alors pas du tout du tout !
des que tu as une boucle avec des += de chaines dedans il faut remplacer ca par un StringBuffer !  




 
Ha ouais !? c beaucoup plus lent qu'un Append de StringBuffer !?

Reply

Marsh Posté le 28-05-2002 à 15:33:06    

el_gringo a écrit a écrit :

 
 
Ha ouais !? c beaucoup plus lent qu'un Append de StringBuffer !?  




 
yaisse


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 28-05-2002 à 15:37:48    

DarkLord a écrit a écrit :

 
 
yaisse  




 
...Je note, merci !

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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