লাইন স্প্লিটিংয়ের জন্য String.lines()
regex ওভারহেড (overhead) ছাড়াই টেক্সটকে স্ট্রিম অব লাইনসে (stream of lines) বিভক্ত করতে String.lines() ব্যবহার করুন।
কোড তুলনা
✕ Java 8
String text = "one\ntwo\nthree";
String[] lines = text.split("\n");
for (String line : lines) {
System.out.println(line);
}
✓ Java 11+
String text = "one\ntwo\nthree"; text.lines().forEach(IO::println);
এই কোডে সমস্যা দেখছেন? আমাদের জানান।
কেন আধুনিক পদ্ধতি ভালো
লেজি স্ট্রিমিং (Lazy Streaming)
লাইনগুলো ডিমান্ড অনুযায়ী তৈরি হয়, split() এর মতো সব একসাথে নয়।
ইউনিভার্সাল লাইন এন্ডিং (Universal Line Endings)
regex ছাড়াই স্বয়ংক্রিয়ভাবে \n, \r, এবং \r\n হ্যান্ডেল করে।
স্ট্রিম ইন্টিগ্রেশন (Stream Integration)
filter, map, collect-এর সাথে সরাসরি ব্যবহারের জন্য একটি Stream রিটার্ন করে।
পুরনো পদ্ধতি
split("\n")
আধুনিক পদ্ধতি
lines()
JDK থেকে
11
কঠিনতা
প্রাথমিক
JDK সমর্থন
লাইন স্প্লিটিংয়ের জন্য String.lines()
উপলব্ধ
JDK 11 (সেপ্টেম্বর 2018) থেকে উপলব্ধ।
কীভাবে কাজ করে
String.lines() মেথডটি \n, \r, বা \r\n দ্বারা বিভক্ত লাইনগুলোর Stream<String> রিটার্ন করে। এটি split() মেথডের চেয়ে বেশি লেজি (lazy) এবং ইফিশিয়েন্ট, regex কম্পাইলেশন এড়িয়ে যায় এবং আরও প্রসেসিংয়ের জন্য Stream API এর সাথে স্বাভাবিকভাবে ইন্টিগ্রেট করে।
সম্পর্কিত ডকুমেন্টেশন
প্রমাণ