অন্যান্য উত্তরে উল্লিখিত হিসাবে, আপনার কোডটি প্রাথমিকভাবে কাজ করছে না কারণ String.replace(...)
লক্ষ্য পরিবর্তন করে না String
। (এটি পারে না - জাভা স্ট্রিংগুলি অপরিবর্তনীয়!) replace
আসলে যা হয় তা হল String
প্রয়োজন অনুসারে পরিবর্তিত অক্ষরগুলি সহ একটি নতুন অবজেক্ট তৈরি করা এবং ফিরে দেওয়া । তবে আপনার কোডটি তা ছুঁড়ে ফেলেছে String
...
এখানে কয়েকটি সম্ভাব্য সমাধান রয়েছে। কোনটি সবচেয়ে সঠিক তা নির্ভর করে আপনি ঠিক কী করার চেষ্টা করছেন তার উপর নির্ভর করে।
// #1
text = text.replace("\n", "");
কেবলমাত্র সমস্ত নিউলাইন অক্ষর মুছে ফেলা হয়। এটি উইন্ডোজ বা ম্যাক লাইন সমাপ্তির সাথে সামঞ্জস্য করে না।
// #2
text = text.replace(System.getProperty("line.separator"), "");
বর্তমান প্ল্যাটফর্মের জন্য সমস্ত লাইন টার্মিনেটর সরান। আপনি উইন্ডোজের কোনও ইউএনআইএক্স ফাইল প্রক্রিয়া করার চেষ্টা করছেন (উদাহরণস্বরূপ) বা তার বিপরীতে আপনি এটি মোকাবিলা করতে পারবেন না।
// #3
text = text.replaceAll("\\r|\\n", "");
সমস্ত উইন্ডোজ, ইউনিক্স বা ম্যাক লাইন টার্মিনেটর সরান s যাইহোক, যদি ইনপুট ফাইলটি পাঠ্য হয় তবে এটি শব্দের সাথে মিলিত হবে; যেমন
Goodbye cruel
world.
হয়ে
Goodbye cruelworld.
সুতরাং আপনি সম্ভবত এটি করতে চাইবেন:
// #4
text = text.replaceAll("\\r\\n|\\r|\\n", " ");
যা প্রতিটি লাইনের টার্মিনেটরকে একটি স্পেস দিয়ে প্রতিস্থাপন করে। জাভা 8 যেহেতু আপনি এটিও করতে পারেন:
// #5
text = text.replaceAll("\\R", " ");
এবং যদি আপনি এক স্থানের সাথে একাধিক লাইন বিভাজক প্রতিস্থাপন করতে চান:
// #6
text = text.replaceAll("\\R+", " ");