Conforme observado em outras respostas, seu código não está funcionando principalmente porque String.replace(...)
não altera o destino String
. (Não pode - as seqüências Java são imutáveis!) O que replace
realmente faz é criar e retornar um novo String
objeto com os caracteres alterados conforme necessário. Mas seu código joga fora isso String
...
Aqui estão algumas soluções possíveis. Qual é o mais correto depende do que exatamente você está tentando fazer.
// #1
text = text.replace("\n", "");
Simplesmente remove todos os caracteres da nova linha. Isso não lida com as terminações de linha do Windows ou Mac.
// #2
text = text.replace(System.getProperty("line.separator"), "");
Remove todos os terminadores de linha da plataforma atual. Isso não lida com o caso em que você está tentando processar (por exemplo) um arquivo UNIX no Windows ou vice-versa.
// #3
text = text.replaceAll("\\r|\\n", "");
Remove todos os terminadores de linha do Windows, UNIX ou Mac. No entanto, se o arquivo de entrada for texto, isso concatenará as palavras; por exemplo
Goodbye cruel
world.
torna-se
Goodbye cruelworld.
Então você pode realmente querer fazer isso:
// #4
text = text.replaceAll("\\r\\n|\\r|\\n", " ");
que substitui cada terminador de linha por um espaço. Desde o Java 8, você também pode fazer isso:
// #5
text = text.replaceAll("\\R", " ");
E se você deseja substituir vários separadores de linhas por um espaço:
// #6
text = text.replaceAll("\\R+", " ");