Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Chương trình Java regex tách chuỗi theo dòng (line endings)


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ùng split(regex, -1) để giữ trailing empty strings.
  • Cross-platform: luôn dùng \\r?\\n hoặc \\R (Java 8+ any linebreak).