Comme indiqué dans d'autres réponses, votre code ne fonctionne pas. principalement parce que String.replace(...)
ne change pas la chaîne cible. (Il ne peut pas - les chaînes Java sont immuables !) Ce qu'il fait en fait, c'est créer une nouvelle chaîne avec les caractères modifiés comme requis. Mais votre code jette ensuite cette chaîne ...
Voici quelques solutions possibles. La solution la plus appropriée 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 prend pas en compte les terminaisons de ligne de Windows ou de Mac.
// #2
text = text.replace(System.getProperty("line.separator"), "");
Supprime tous les terminateurs de ligne pour la plate-forme actuelle. Cela ne permet pas de faire face au 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 de Windows, UNIX ou Mac. Cependant, si le fichier d'entrée est du texte, cette commande concaténera les mots ; par ex.
Goodbye cruel
world.
devient
Goodbye cruelworld.
Donc tu pourrais vouloir faire ça :
// #4
text = text.replaceAll("\\r\\n|\\r|\\n", " ");
qui remplace chaque terminaison de ligne par un espace.
0 votes
Voulez-vous éliminer tous les sauts de ligne ? Ou vous voulez les uniformiser selon une solution standard ?
4 votes
Oh, si vous voulez supprimer tous les sauts de ligne, supprimez tous les \n ET tout \r (parce que le saut de ligne de Windows est \r\n ).
2 votes
Si vous souhaitez remplacer les sauts de ligne simultanés par des sauts de ligne uniques, vous pouvez utiliser la méthode suivante
myString.trim().replaceAll("[\n]{2,}", "\n")
Ou remplacer par un simple espacemyString.trim().replaceAll("[\n]{2,}", " ")