Diğer yanıtlar belirtildiği gibi, kodunuz çalışmıyor öncelikle çünkü String.replace(...)
hedef değişmez String
. (Bu olamaz - Java dizeleri değişmez!) replace
Aslında yaptığı, gerektiğinde String
karakterleri değiştirilmiş yeni bir nesne oluşturmak ve döndürmektir . Ancak kodunuz bunu atar String
...
İşte bazı olası çözümler. Hangisinin en doğru olduğu tam olarak ne yapmaya çalıştığınıza bağlıdır.
// #1
text = text.replace("\n", "");
Tüm yeni satır karakterlerini kaldırır. Bu, Windows veya Mac satır sonlandırmalarıyla başa çıkmaz.
// #2
text = text.replace(System.getProperty("line.separator"), "");
Geçerli platform için tüm satır sonlandırıcılarını kaldırır. Bu, Windows'ta bir UNIX dosyasını (veya tam tersini) işlemeye çalıştığınız durumla başa çıkmaz.
// #3
text = text.replaceAll("\\r|\\n", "");
Tüm Windows, UNIX veya Mac hat sonlandırıcılarını kaldırır. Ancak, giriş dosyası metinse, bu sözcükleri birleştirir; Örneğin
Goodbye cruel
world.
olur
Goodbye cruelworld.
Yani aslında bunu yapmak isteyebilirsiniz:
// #4
text = text.replaceAll("\\r\\n|\\r|\\n", " ");
her satır sonlandırıcıyı bir boşlukla değiştirir. Java 8'den beri bunu da yapabilirsiniz:
// #5
text = text.replaceAll("\\R", " ");
Ve birden çok satır ayırıcıyı bir boşlukla değiştirmek istiyorsanız:
// #6
text = text.replaceAll("\\R+", " ");