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

Phương thức split() của Pattern trong Java với các ví dụ

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

Phương thức split() của lớp này nhận một đối tượng CharSequence đại diện cho chuỗi đầu vào làm tham số và, tại mỗi lần khớp, nó tách chuỗi đã cho thành một token mới và trả về mảng chuỗi chứa tất cả các token.

Ví dụ 1

import java.util.regex.Pattern;

public class SplitMethodExample {
    public static void main(String args[]) {
        // Biểu thức chính quy để tìm chữ số
        String regex = "(\\s)(\\d)(\\s)";
        String input = " 1 Name:Radha, age:25 2 Name:Ramu, age:32 3 Name:Rajev, age:45";
        
        // Biên dịch biểu thức chính quy
        Pattern pattern = Pattern.compile(regex);
        
        // Kiểm tra xem có khớp không
        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
        String strArray[] = pattern.split(input);
        for (int i = 0; i < strArray.length; i++) {
            System.out.println(strArray[i]);
        }
    }
}

Kết quả

Chuỗi đã cho chứa chữ số
Name:Radha, age:25
Name:Ramu, age:32
Name:Rajev, age:45

Phương thức này cũng chấp nhận một giá trị nguyên đại diện cho số lần mẫu được áp dụng. Tức là bạn có thể quyết định độ dài của mảng kết quả bằng cách chỉ định giá trị limit.

Ví dụ 2 (với limit)

import java.util.regex.Pattern;

public class SplitMethodExample {
    public static void main(String args[]) {
        // Biểu thức chính quy để tìm chữ số
        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";
        
        // Biên dịch biểu thức chính quy
        Pattern pattern = Pattern.compile(regex);
        
        // Kiểm tra xem có khớp không
        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 với limit = 4
        String strArray[] = pattern.split(input, 4);
        for (int i = 0; i < strArray.length; i++) {
            System.out.println(strArray[i]);
        }
    }
}

Kết quả

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