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

 


Dernière réponse
Sujet : [JAVA] remplacer une chaine de caractères par une autre
Gourou Bon, Wouatouwouatou, tu m'excuseras mais j'ai préféré l'autre méthode...
Je l'ai bidouillée et maintenant ca marche :
 
import java.io.*;  
 
public class test {  
public static void main(String[] arguments)  
{  
  String sonTexte = "C'est dur le matin ";  
  String txtFind = "le matin";  
  String txtReplace= "la journée";  
  String tmp;  
   
  int lgFind = txtFind.length();  
  int lgReplace=txtReplace.length();  
   
  System.out.println(sonTexte + "\n" );  
   
  for (int k=0;k<(sonTexte.length();k++)  
  {  
     try  
     { tmp = sonTexte.substring(k,k+lgFind); }  
     catch(Exception e)  
     { break; }  
     if ( tmp.equalsIgnoreCase(txtFind) )  
     {  
        sonTexte= sonTexte.substring(0,k) + txtReplace + sonTexte.substring(k+lgFind,sonTexte.length());
     }  
  }  
   
  System.out.println(sonTexte);  
}  
}  
 
C'est bizarre mais ca marche...

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Gourou Bon, Wouatouwouatou, tu m'excuseras mais j'ai préféré l'autre méthode...
Je l'ai bidouillée et maintenant ca marche :
 
import java.io.*;  
 
public class test {  
public static void main(String[] arguments)  
{  
  String sonTexte = "C'est dur le matin ";  
  String txtFind = "le matin";  
  String txtReplace= "la journée";  
  String tmp;  
   
  int lgFind = txtFind.length();  
  int lgReplace=txtReplace.length();  
   
  System.out.println(sonTexte + "\n" );  
   
  for (int k=0;k<(sonTexte.length();k++)  
  {  
     try  
     { tmp = sonTexte.substring(k,k+lgFind); }  
     catch(Exception e)  
     { break; }  
     if ( tmp.equalsIgnoreCase(txtFind) )  
     {  
        sonTexte= sonTexte.substring(0,k) + txtReplace + sonTexte.substring(k+lgFind,sonTexte.length());
     }  
  }  
   
  System.out.println(sonTexte);  
}  
}  
 
C'est bizarre mais ca marche...
wouatouwouatou bah... c normal... la methode te retourne un string
Elle affiche rien!! :D
fo ke taffiche le resultat de la fonction :D:D
J'aurais ptet du te laiser le cogiter seul.. taurais compris ...
Ce ke jsuis vache la hein ??!! :D:D:D
rodocop Elle m'a l'air correcte la methode de wouatouwouatou
Gourou, si tu veux tester, il faut faire qq comme:
 
String sonTexte = "C'est dur le matin";
String txtFind = "le matin";
String txtReplace= "la journée";
String result = replace(sonTexte, txtFind, txtReplace);
 
System.out.println(result);
Gourou Y'a pas de msg d'erreur : il y a aucun résultat qui s'affiche .
wouatouwouatou c koi le msg derreur ?? :??:
Gourou je n'arrive pas à le faire marcher..
Merci pour tes explications .
wouatouwouatou c simplement une sorte de string bufferisé :D
En d'autre termes, ca sert lorsque tu veux faire des operations sur des String... Au lieu de faire:
 
 s = s + s1 + s2 + s3;
 
tu fais:
 
 s.append(s1).append(s2).append(s3);
 
Enfin, là, j'ai essayer de tout mettre sur la meme ligne mais sinon tu peux les ecrire sur 3 instructions ...
 
Essaie le et pi dis moi si ca marche :)
Gourou Merci...
Mais j'arrive tjs pas a le faire marcher ! c peut-etre a cause de la façon dont je l'insère dans mon prog (qui ressemble à une véritable boucherie maintenant...)
--> ouatououatou : je pige pas bien l'histoire des buffers... c quoi exactement ?
wouatouwouatou P.S: faudrait faire les tests avant les declaration :D
 
public static String replace(String s_original, String s_cherche, String s_nouveau)  
{  
  if ( ( s_original == null ) || ( s_original.equals("" ) ) )  
     return "";  
  if ( ( s_nouveau == null ) || ( s_nouveau.equals("" ) )  
  || ( s_cherche == null ) || ( s_cherche.equals("" ) ) )  
     return new String(s_original);  
 
  StringBuffer s_final;  
  int index = s_original.indexOf(s_cherche);  
 
  s_final = new StringBuffer(s_original.substring(0,index));  
  s_final.append(s_nouveau);  
  s_final.append(s_original.substring(index+s_cherche.length()));  
 
  return s_final.toString();  
}
wouatouwouatou Je sais ke c facile de critiquer ... mais c pas bô !!! :D:D
Cette bidouille en fin de chaine !!!!
 
Tu devrais au moins le mettre en dynamique, le concatener par exemple a la chaine donnee par l'utilisateur ou autre... C deja mieu... enfin, a mon gout :p
 
voila un chtit prog hihihi... ptet pas aussi perfomant que l'autre mais bon.. je voulais juste poster monmien :D
 
public static String replace(String s_original, String s_cherche, String s_nouveau)
{
  StringBuffer s_final;
  int index = s_original.indexOf(s_cherche);
 
  if ( ( s_original == null ) || ( s_original.equals("" ) ) )
     return "";
  if ( ( s_nouveau == null ) || ( s_nouveau.equals("" ) )
  || ( s_cherche == null ) || ( s_cherche.equals("" ) ) )
     return new String(s_original);
 
  s_final = new StringBuffer(s_original.substring(0,index));
  s_final.append(s_nouveau);
  s_final.append(s_original.substring(index+s_cherche.length()));
 
  return s_final.toString();
}
 
J'espere kil fonctionne :D car jai pas teste...
Gourou Dans mon cas ça marche pô :cry:
Pourtant ton prog est logique !
En fait au lieu de m'afficher xxxxxaxxxx  
il m'affiche xxxxx axxxx  si je demande de remplacer les 'a' par ' '.

 

--Message édité par Gourou--

bibo //voili le chti programme complet pour tester
 
import java.io.*;
 
public class test {
 public static void main(String[] arguments)
 {
  String sonTexte = "C'est dur le matin ";
  String txtFind = "le matin";
  String txtReplace= "la journée";
  String tmp;
   
  int lgFind = txtFind.length();
  int lgReplace=txtReplace.length();
   
  System.out.println(sonTexte + "\n" );
   
  for (int k=0;k<(sonTexte.length()-lgFind);k++)
  {
     try
     { tmp = sonTexte.substring(k,k+lgFind); }
     catch(Exception e)
     { break; }
     if ( tmp.equalsIgnoreCase(txtFind) )
     {
        sonTexte= sonTexte.substring(0,k) + txtReplace + sonTexte.substring(k+lgFind,sonTexte.length());
        k=k+lgReplace;
     }
  }
   
  System.out.println(sonTexte);
 }
}
 
//copyrigth 2000 bibo :D
bibo mais non c'est pas en trop, si le mot à remplacer ne se trouve pas en fin de chaine, tu perd tout ce qu'il y a après !
 
le code que j'ai mis marche tel quel, il suffit juste de mettre
String sonTexte = "C'est dur le matin ";
rajouter un espace à la fin de la chaine (ou tout autre caractère), sinon le programme s'arrête avant la fin.
 
de rien :D

 

--Message édité par bibo--

Gourou Cool :jap:, j'ai trouvé : ce bout de ligne était en trop:
+ sonTexte.substring(k+lgFind,sonTexte.length())
 
Encore merci !! :benetton: :hot:
bibo mais normalement ça devrait le remplacer, parce qu'avec substring je coupe tout ce qu'il y a avant le mot, puis je rajoute le remplaçant, et enfin je colle tout ce qui se trouve après le mot !
Gourou Merci pour le code.
Je viens de l'essayer mais il faut y faire de modifs car il ne remplace pas le mot, il écrit juste après.
Je vais essayer de bidouiller ça et si tu as une idée post la moi, merci.
A+
bibo si :
 
String sonTexte = "C'est dur le matin";
String txtFind = "le matin";
String txtReplace= "la journée";
String tmp;
 
int lgFind = txtFind.length();
int lgReplace=txtReplace.length();
 
for (int k=0;k<(sonTexte.length()-lgFind);k++)
{
  try
  { tmp = sonTexte.substring(k,k+lgFind); }
  catch(Exception e)
  { break; }
  if ( tmp.equalsIgnoreCase(txtFind) )
  {
    sonTexte= sonTexte.substring(0,k) + txtReplace + sonTexte.substring(k+lgFind,sonTexte.length());
    k=k+lgReplace;
  }
}
 
ça devrait marcher :D

 

--Message édité par bibo--

Gourou Alors aucune idée??? Au secours !!! Help !!! SOS !!! -.-..--..- !!! :sarcastic: :D :o :gun: :bic: :spookie: :bounce: :jap:

 

--Message édité par Gourou--

Gourou par exemple dans la chaine "C'est dur le matin" je voudrais remplacer "le matin" par "la journée" ce qui donnerait "C'est dur la journée".
OK ???? Reprend donc une tasse de café (surtout avec JAVA !!!)
wouatouwouatou pige pas trop ce ke tu veu .. :D Ce doit etre le matin !!!
Gourou Salut !!
je voudrais remplacer dans une chaine de caractères un morceau de celle-ci.  
Comment faire en JAVA ?  
car il existe la méthode Replace mais elle fonctionne qu'avec des caractères...  
Merci

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)