আমার একটি স্ট্রিং রয়েছে যাতে একটি ফাঁকা লাইন পরে কিছু পাঠ্য থাকে। অংশটি পাঠ্যের সাথে রাখার সর্বোত্তম উপায় কী তবে শেষ থেকে হোয়াইটস্পেসের নিউলাইনটি সরিয়ে ফেলুন?
আমার একটি স্ট্রিং রয়েছে যাতে একটি ফাঁকা লাইন পরে কিছু পাঠ্য থাকে। অংশটি পাঠ্যের সাথে রাখার সর্বোত্তম উপায় কী তবে শেষ থেকে হোয়াইটস্পেসের নিউলাইনটি সরিয়ে ফেলুন?
উত্তর:
String.trim()
স্ট্রিংয়ের শুরু এবং শেষ থেকে হোয়াইটস্পেস (স্পেস, নতুন লাইন ইত্যাদি) থেকে মুক্তি পাওয়ার জন্য পদ্ধতিটি ব্যবহার করুন ।
String trimmedString = myString.trim();
String cleanString = dirtyString.strip() ; // Call new `String::string` method.
String::strip…
পুরানো String::trim
পদ্ধতিতে সাদা স্থানের একটি অদ্ভুত সংজ্ঞা রয়েছে ।
এখানে আলোচনা হিসাবে , জাভা 11 ক্লাসে নতুন strip…
পদ্ধতি যুক্ত করে String
। এগুলি হোয়াইটস্পেসের আরও ইউনিকোড-সচেতন সংজ্ঞা ব্যবহার করে। জাভাডক ক্লাসে এই সংজ্ঞাটির নিয়মগুলি দেখুনCharacter::isWhitespace
।
উদাহরণ কোড।
String input = " some Thing ";
System.out.println("before->>"+input+"<<-");
input = input.strip();
System.out.println("after->>"+input+"<<-");
অথবা আপনি কেবল শীর্ষস্থানীয় বা কেবল অনুসরণ করতে পারেন সাদা স্থানটি ।
আপনি কী কোড পয়েন্ট (গুলি) আপনার নতুন লাইনগুলি আপ আপ তা উল্লেখ করবেন না । আমি ভেবেছি আপনার নিউলাইনটি সম্ভবত কোড টার্গেট দ্বারা চিহ্নিত কোড পয়েন্টগুলির এই তালিকায় অন্তর্ভুক্ত রয়েছে strip
:
এই জাভা কোডটি প্রশ্নের শিরোনামে যা জিজ্ঞাসা করা হয়েছিল ঠিক তাই করে, এটি হল "স্ট্রিং-জাভা শুরু এবং শেষ থেকে নিউলাইনগুলি সরান":
String.replaceAll("^[\n\r]", "").replaceAll("[\n\r]$", "")
কেবল রেখার শেষ থেকে নিউলাইনগুলি সরান:
String.replaceAll("[\n\r]$", "")
কেবল রেখার শুরু থেকে নিউলাইনগুলি সরান:
String.replaceAll("^[\n\r]", "")
যদি আপনার স্ট্রিংটি সম্ভাব্য হয় তবে ব্যবহারটি null
বিবেচনা করুন StringUtils.trim()
- এর নাল-নিরাপদ সংস্করণ String.trim()
।
String trimStartEnd = "\n TestString1 linebreak1\nlinebreak2\nlinebreak3\n TestString2 \n";
System.out.println("Original String : [" + trimStartEnd + "]");
System.out.println("-----------------------------");
System.out.println("Result String : [" + trimStartEnd.replaceAll("^(\\r\\n|[\\n\\x0B\\x0C\\r\\u0085\\u2028\\u2029])|(\\r\\n|[\\n\\x0B\\x0C\\r\\u0085\\u2028\\u2029])$", "") + "]");
আমি এর সাথে একটি উত্তর যুক্ত করতে যাচ্ছি কারণ আমার একই প্রশ্নটি ছিল, প্রদত্ত উত্তরটি যথেষ্ট ছিল না। কিছু চিন্তাভাবনা দেওয়া, আমি বুঝতে পারি যে এটি নিয়মিত প্রকাশের মাধ্যমে খুব সহজেই করা যায়।
শুরু থেকে নতুন লাইনগুলি সরাতে :
// Trim left
String[] a = "\n\nfrom the beginning\n\n".split("^\\n+", 2);
System.out.println("-" + (a.length > 1 ? a[1] : a[0]) + "-");
এবং একটি স্ট্রিং এর শেষে:
// Trim right
String z = "\n\nfrom the end\n\n";
System.out.println("-" + z.split("\\n+$", 2)[0] + "-");
আমি নিশ্চিত যে এটি কোনও স্ট্রিং ছাঁটাইয়ের সবচেয়ে কার্যকরী দক্ষ উপায় নয়। তবে এ জাতীয় অপারেশনটিকে ইনলাইন করার সবচেয়ে পরিষ্কার এবং সহজ উপায় বলে মনে হয়।
নোট করুন যে কোনও প্রান্ত থেকে সরল রেইজেক্স হিসাবে কোনও প্রান্ত থেকে অক্ষরগুলির কোনও প্রকরণ এবং সংমিশ্রণ ছাঁটাইতে একই পদ্ধতি করা যেতে পারে।
split()
সীমাবদ্ধতা। আপনি যদি সীমাহীন সংখ্যক বারের সাথে মিল রাখতে চান তবে এটি ছেড়ে দিন।
String text = readFileAsString("textfile.txt");
text = text.replace("\n", "").replace("\r", "");