লাইন এন্ডিং রেজেক্স
Windows-এ `\r\n` (CRLF), Unix/Linux/macOS-এ `\n` (LF) লাইন সেপারেটর। ক্রস-প্ল্যাটফর্ম রেজেক্স: `\\r?\\n` — ঐচ্ছিক `\r` তারপর `\n`।
String.split() ব্যবহার করে
split("\\r?\\n") দিয়ে স্ট্রিংকে লাইন-wise অ্যারেতে ভাগ করা যায়।
কোড উদাহরণ
import java.util.Scanner;
public class SplitByLineEndingExample {
public static void main(String[] args) {
System.out.println("আপনার ইনপুট স্ট্রিং লিখুন: ");
Scanner sc = new Scanner(System.in);
// টেস্ট ইনপুট (মাল্টি-লাইন স্ট্রিং লিটারেল)
String input = "sample text \r\n line1 \r\n line2 \r\n line3 \r\n line4";
// লাইন এন্ডিং দিয়ে স্প্লিট
String[] strArray = input.split("\\r?\\n");
for (int i = 0; i < strArray.length; i++) {
System.out.println("লাইন " + (i+1) + ": " + strArray[i]);
}
}
}
আউটপুট উদাহরণ
আপনার ইনপুট স্ট্রিং লিখুন: sample text
line1
line2
line3
line4
লাইন 1: sample text
লাইন 2: line1
লাইন 3: line2
লাইন 4: line3
লাইন 5: line4
Pattern.split() ব্যবহার (পারফরম্যান্সের জন্য)
Pattern pattern = Pattern.compile("\\r?\\n");
String[] lines = pattern.split(input); // একই ফলাফল, প্যাটার্ন রিয়ুজ
Java 11+ : String.lines() (স্ট্রিম API)
// Java 11+ - সবচেয়ে সহজ এবং পঠনীয়
input.lines().forEach(line -> System.out.println(line));
// বা লিস্টে কালেক্ট
List<String> lines = input.lines().collect(Collectors.toList());
সামान्य লাইন সেপারেটর রেজেক্স
| প্ল্যাটফর্ম | লাইন এন্ডিং | রেজেক্স |
|---|---|---|
| Windows | CRLF | `\r\n` |
| Unix/Linux/macOS | LF | `\n` |
| Classic Mac OS | CR | `\r` |
| ইউনিভার্সাল | সব | `\r?\n` বা `\r\n?` |
সারসংক্ষেপ
ক্রস-প্ল্যাটফর্ম লাইন স্প্লিটের জন্য `\\r?\\n` রেজেক্স ব্যবহার করুন। Java 11+ এ `String.lines()` স্ট্রিম API সবচেয়ে মডার্ন এবং পছন্দনীয় পদ্ধতি। লিগেসি কোডবেসে `split("\\r?\\n")` বা `Pattern.compile("\\r?\\n").split()` ব্যবহার করুন।