जैसा कि अन्य उत्तरों में उल्लेख किया गया है, आपका कोड प्राथमिक रूप से काम नहीं कर रहा है क्योंकि String.replace(...)
लक्ष्य नहीं बदलता है String
। (यह नहीं हो सकता - जावा के तार अपरिवर्तनीय हैं!) replace
वास्तव String
में आवश्यक के रूप में बदले गए पात्रों के साथ एक नई वस्तु बनाने और वापस करने के लिए क्या करना है। लेकिन आपका कोड तब दूर फेंकता है String
...
यहां कुछ संभव उपाय दिए गए हैं। कौन सा सबसे सही है यह इस बात पर निर्भर करता है कि आप क्या करने की कोशिश कर रहे हैं।
// #1
text = text.replace("\n", "");
बस सभी न्यूलाइन वर्णों को हटा देता है। यह विंडोज या मैक लाइन समाप्ति के साथ सामना नहीं करता है।
// #2
text = text.replace(System.getProperty("line.separator"), "");
वर्तमान प्लेटफ़ॉर्म के लिए सभी लाइन टर्मिनेटर निकालता है। यह उस मामले से सामना नहीं करता है जहां आप विंडोज पर एक UNIX फ़ाइल (उदाहरण के लिए) को संसाधित करने की कोशिश कर रहे हैं या इसके विपरीत।
// #3
text = text.replaceAll("\\r|\\n", "");
सभी विंडोज, यूनिक्स या मैक लाइन टर्मिनेटर को हटा देता है। हालाँकि, यदि इनपुट फ़ाइल पाठ है, तो यह शब्दों को संक्षिप्त कर देगा; जैसे
Goodbye cruel
world.
हो जाता है
Goodbye cruelworld.
तो आप वास्तव में ऐसा करना चाह सकते हैं:
// #4
text = text.replaceAll("\\r\\n|\\r|\\n", " ");
जो एक स्पेस के साथ प्रत्येक लाइन टर्मिनेटर को बदलता है। जावा 8 के बाद से आप यह भी कर सकते हैं:
// #5
text = text.replaceAll("\\R", " ");
और यदि आप एक जगह के साथ कई लाइन विभाजकों को बदलना चाहते हैं:
// #6
text = text.replaceAll("\\R+", " ");