ตามที่ระบุไว้ในคำตอบอื่น ๆ รหัสของคุณไม่ได้ทำงานเป็นหลักเพราะไม่ได้เปลี่ยนเป้าหมายString.replace(...)
String
(ไม่สามารถ - สตริง Java ไม่เปลี่ยนรูป!) สิ่งที่replace
เป็นจริงคือการสร้างและส่งกลับString
วัตถุใหม่ที่มีการเปลี่ยนแปลงตัวละครตามที่ต้องการ แต่รหัสของคุณก็จะทำให้String
...
นี่คือวิธีแก้ปัญหาที่เป็นไปได้ สิ่งที่ถูกต้องที่สุดขึ้นอยู่กับว่าคุณพยายามทำอะไร
// #1
text = text.replace("\n", "");
เพียงลบอักขระบรรทัดใหม่ทั้งหมด สิ่งนี้ไม่สามารถรองรับการยุติสาย Windows หรือ Mac
// #2
text = text.replace(System.getProperty("line.separator"), "");
ลบตัวยกเลิกบรรทัดทั้งหมดสำหรับแพลตฟอร์มปัจจุบัน สิ่งนี้ไม่ได้เกี่ยวข้องกับกรณีที่คุณพยายามประมวลผล (ตัวอย่าง) ไฟล์ UNIX บน Windows หรือในทางกลับกัน
// #3
text = text.replaceAll("\\r|\\n", "");
ลบจุดสิ้นสุดบรรทัด Windows, UNIX หรือ Mac ทั้งหมด อย่างไรก็ตามหากไฟล์อินพุตเป็นข้อความสิ่งนี้จะเชื่อมคำเข้าด้วยกัน เช่น
Goodbye cruel
world.
กลายเป็น
Goodbye cruelworld.
ดังนั้นคุณอาจต้องการทำสิ่งนี้:
// #4
text = text.replaceAll("\\r\\n|\\r|\\n", " ");
ซึ่งจะแทนที่แต่ละบรรทัดด้วยตัวเว้นวรรค ตั้งแต่ Java 8 คุณสามารถทำสิ่งนี้ได้:
// #5
text = text.replaceAll("\\R", " ");
และถ้าคุณต้องการแทนที่ตัวคั่นหลายบรรทัดด้วยหนึ่งช่องว่าง:
// #6
text = text.replaceAll("\\R+", " ");