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.