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

Phương thức Pattern.splitAsStream() trong Java với ví dụ


Lớp Pattern của gói java.util.regex là biểu diễn đã biên dịch của biểu thức chính quy.

Phương thức splitAsStream() của lớp này chấp nhận một đối tượng CharSequence (chuỗi đầu vào) làm tham số và, tại mỗi khớp, tách chuỗi thành chuỗi con mới và trả về kết quả dưới dạng Stream<String> chứa tất cả các chuỗi con.

Ví dụ

import java.util.regex.Pattern;
import java.util.stream.Stream;

public class SplitAsStreamMethodExample {
    public static void main(String args[]) {
        // Regex: khoảng trắng - chữ số - khoảng trắng
        String regex = "(\\s)(\\d)(\\s)";
        String input = " 1 Name:Radha, age:25 2 Name:Ramu, age:32"
                + " 3 Name:Rajeev, age:45 4 Name:Raghu, age:35"
                + " 5 Name:Rahman, age:30";
        
        Pattern pattern = Pattern.compile(regex);
        
        if (pattern.matcher(input).find())
            System.out.println("Chuỗi đã cho chứa chữ số");
        else
            System.out.println("Chuỗi đã cho không chứa chữ số");
        
        // Tách chuỗi thành Stream
        Stream<String> stream = pattern.splitAsStream(input);
        Object obj[] = stream.toArray();
        
        for (int i = 0; i < obj.length; i++) {
            System.out.println(obj[i]);
        }
    }
}

Kết quả

Chuỗi đã cho chứa chữ số
Name:Radha, age:25
Name:Ramu, age:32
Name:Rajeev, age:45
Name:Raghu, age:35
Name:Rahman, age:30

Ưu điểm: Trả về Stream<String> cho phép xử lý song song, lọc, map, collect... linh hoạt hơn mảng String[] của split() truyền thống.