Comme indiqué dans d'autres réponses, votre code ne fonctionne pas principalement parce String.replace(...)
qu'il ne modifie pas la cible String
. (Il ne peut pas - les chaînes Java sont immuables!) Ce replace
qui fait réellement est de créer et de renvoyer un nouvel String
objet avec les caractères modifiés selon les besoins. Mais votre code jette alorsString
...
Voici quelques solutions possibles. Laquelle est la plus correcte dépend de ce que vous essayez de faire exactement.
// #1
text = text.replace("\n", "");
Supprime simplement tous les caractères de nouvelle ligne. Cela ne résiste pas aux terminaisons de ligne Windows ou Mac.
// #2
text = text.replace(System.getProperty("line.separator"), "");
Supprime tous les terminateurs de ligne pour la plate-forme actuelle. Cela ne résout pas le cas où vous essayez de traiter (par exemple) un fichier UNIX sous Windows, ou vice versa.
// #3
text = text.replaceAll("\\r|\\n", "");
Supprime tous les terminateurs de ligne Windows, UNIX ou Mac. Cependant, si le fichier d'entrée est du texte, cela concaténera les mots; par exemple
Goodbye cruel
world.
devient
Goodbye cruelworld.
Donc, vous voudrez peut-être faire ceci:
// #4
text = text.replaceAll("\\r\\n|\\r|\\n", " ");
qui remplace chaque terminaison de ligne par un espace. Depuis Java 8, vous pouvez également faire ceci:
// #5
text = text.replaceAll("\\R", " ");
Et si vous souhaitez remplacer plusieurs séparateurs de lignes par un espace:
// #6
text = text.replaceAll("\\R+", " ");