Como se señaló en otras respuestas, su código no funciona principalmente porque String.replace(...)
no cambia el objetivo String
. (No puede, ¡las cadenas de Java son inmutables!) Lo que replace
realmente hace es crear y devolver un nuevo String
objeto con los caracteres cambiados según sea necesario. Pero tu código arroja eso String
...
Aquí hay algunas posibles soluciones. Cuál es el más correcto depende de qué es exactamente lo que está tratando de hacer.
// #1
text = text.replace("\n", "");
Simplemente elimina todos los caracteres de nueva línea. Esto no hace frente a las terminaciones de línea de Windows o Mac.
// #2
text = text.replace(System.getProperty("line.separator"), "");
Elimina todos los terminadores de línea para la plataforma actual. Esto no hace frente al caso en el que intenta procesar (por ejemplo) un archivo UNIX en Windows, o viceversa.
// #3
text = text.replaceAll("\\r|\\n", "");
Elimina todos los terminadores de línea de Windows, UNIX o Mac. Sin embargo, si el archivo de entrada es texto, esto concatenará palabras; p.ej
Goodbye cruel
world.
se convierte
Goodbye cruelworld.
Por lo tanto, es posible que desee hacer esto:
// #4
text = text.replaceAll("\\r\\n|\\r|\\n", " ");
que reemplaza cada terminador de línea con un espacio. Desde Java 8 también puedes hacer esto:
// #5
text = text.replaceAll("\\R", " ");
Y si desea reemplazar varios separadores de línea con un espacio:
// #6
text = text.replaceAll("\\R+", " ");