Seperti disebutkan dalam jawaban lain, kode Anda tidak berfungsi terutama karena String.replace(...)
tidak mengubah target String
. (Tidak bisa - string Java tidak dapat diubah!) Yang replace
sebenarnya dilakukan adalah membuat dan mengembalikan String
objek baru dengan karakter yang diubah sesuai kebutuhan. Tetapi kode Anda kemudian membuang itu String
...
Berikut adalah beberapa solusi yang mungkin. Yang mana yang paling benar tergantung pada apa yang sebenarnya Anda coba lakukan.
// #1
text = text.replace("\n", "");
Cukup hapus semua karakter baris baru. Ini tidak mengatasi pemutusan jalur Windows atau Mac.
// #2
text = text.replace(System.getProperty("line.separator"), "");
Menghapus semua terminator saluran untuk platform saat ini. Ini tidak mengatasi kasus di mana Anda mencoba memproses (misalnya) file UNIX di Windows, atau sebaliknya.
// #3
text = text.replaceAll("\\r|\\n", "");
Menghapus semua terminator jalur Windows, UNIX atau Mac. Namun, jika file input adalah teks, ini akan menyatukan kata-kata; misalnya
Goodbye cruel
world.
menjadi
Goodbye cruelworld.
Jadi, Anda mungkin benar-benar ingin melakukan ini:
// #4
text = text.replaceAll("\\r\\n|\\r|\\n", " ");
yang menggantikan setiap terminator garis dengan spasi. Karena Java 8 Anda juga dapat melakukan ini:
// #5
text = text.replaceAll("\\R", " ");
Dan jika Anda ingin mengganti beberapa pemisah garis dengan satu spasi:
// #6
text = text.replaceAll("\\R+", " ");