salut tout le monde,
dans un fichier texte, j'aimerai savoir comment rechercher une chaine de caracteres specifique puis la remplacer par une autre.
merci
salut tout le monde,
dans un fichier texte, j'aimerai savoir comment rechercher une chaine de caracteres specifique puis la remplacer par une autre.
merci
en récupérant ton fichier puis en utilisant replaceAll de String qui te permet de remplacer des mots par des autres (il y a un exemple dans la FAQ)
je crois que tu est obligé de parcourir le fichier pour remplir une variable (un stringBuffer) et de faire un replaceAll dessus.
mais bon il y a peut etre plus propre/efficace ...
[EDIT] ha pas assez rapide ...![]()
à mon avis, le plus rapide pourrait être :
- d'ouvrir un flux de fichier (on va l'appeler 'r') depuis le fichier que tu veux lire
- d'ouvrir un flux de fichier (on va l'appeler 'w') vers 1 nouveau fichier (tester si existant -> effacer puis recréer)
de déclarer 1 String 's' qui prend la première valeur lue de r
et enfin :
tant que s non null {
écrire s.replace("chaine à remplacer", "chaine à inscrire") dans w
lire s dans r
}
Voilà .. t'as l'algo
histoire d'avoir plusieurs points de vue, moi j'aurais plutot vu un truc style :
avec les exceptions qui vont bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 BufferedReader in=new BufferedReader(new FileReader("source")); StringBuffer sb = new StringBuffer(); while((ligne=in.readLine())!=null){ sb.append(ligne) } String clean = sb.toString().replaceAll("Recherché","Remplacé par"); in.reset(); // à voir si c'est suffisant in.write(clean); in.close();
Apres ça dépend de ce que tu veux remplacer. Si c'est juste des caractères, la solution de neptus est bonne. Apres si c'est des phrases (et donc sur plusieurs lignes) mieux vaut travailler sur le texte dans sa globalité.
Apres, mon idée est surement moins rapide que celle de Neptus. Peut etre un mis des 2 te comblerait ...
écrire dans 1 reader ??
original ... mais faux il me semble.
oui effectivement, j'ai pas trop réfléchi ...![]()
mais bon ... c'est pas vraiment important pour la compréhension de l'algo je pense
ATTENTION ! NE PAS COPIER/COLLER ET METTRE EN PRODUCTION![]()
Partager