Line Endings
- Windows:
\r\n(CRLF) - Unix/Linux/macOS:
\n(LF) - Mac cũ:
\r(CR)
Regex \\r?\\n khớp cả hai: \n hoặc \r\n.
Ví dụ
import java.util.Scanner;
public class RegexExample {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Nhập chuỗi: ");
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(strArray[i]);
}
}
}
Kết quả
sample text
line1
line2
line3
line4
Cách tốt hơn (Java 8+)
// Dùng Lines API
String[] lines = input.split("\\r?\\n");
// Hoặc
List lines = input.lines().collect(Collectors.toList());
// Java 11+: Pattern.splitAsStream
Pattern pattern = Pattern.compile("\\r?\\n");
Stream stream = pattern.splitAsStream(input);
Lưu ý
split()loại bỏ delimiter. Dùngsplit(regex, -1)để giữ trailing empty strings.- Cross-platform: luôn dùng
\\r?\\nhoặc\\R(Java 8+ any linebreak).