Como se señala en ot sus respuestas, su código no está funcionando principalmente porque String.replace(...)
no cambia la cadena de destino. (No puede - ¡las cadenas de Java son inmutables!) Lo que realmente hace es crear una nueva Cadena con los caracteres modificados según sea necesario. Sin embargo, su código a continuación, se deshace de esa cadena ...
Estas son algunas soluciones posibles. Cuál es el más correcto depende de qué es exactamente lo que estás tratando de hacer.
// #1
text = text.replace("\n", "");
Simplemente elimina todos los caracteres de nueva línea. Esto no es compatible con las terminaciones de línea de Windows o Mac.
// #2
text = text.replace(System.getProperty("line.separator"), "");
Elimina todos los finales de línea para la plataforma actual. Esto no es compatible con el 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.
convierte
Goodbye cruelworld.
Así que en realidad podría querer hacer esto:
// #4
text = text.replaceAll("\\r\\n|\\r|\\n", " ");
que sustituye a cada final de línea con un espacio.
¿Desea eliminar todos los saltos de línea? ¿O desea uniformizarlos a una solución estándar? – helios
Ah, si desea eliminar todos los avances de línea, elimine \ nY todos \ r (porque el salto de línea de Windows es \ r \ n). – helios
Oiga, para su información, si puede reemplazar los muti-linebreaks simultáneos con un salto de línea, puede usar 'myString.trim(). ReplaceAll (" [\ n] {2,} "," \ n ")' O reemplace con un espacio simple 'myString.trim(). ReplaceAll (" [\ n] {2,} "," ")' –