Phương thức split() của String
String.split(regex) nhận regex, tách chuỗi thành mảng token.
Ví dụ 1: Tách bằng String.split()
import java.util.Scanner;
public class Example {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Nhập văn bản: ");
String input = sc.nextLine();
String[] strArray = input.split("\\d"); // tách tại chữ số
for (int i = 0; i < strArray.length; i++) {
System.out.println(strArray[i]);
}
}
}
Nhập văn bản: 1Ramu 2Raju 3Radha 4Rahman 5Rachel
Ramu
Raju
Radha
Rahman
Rachel
Phương thức split() của Pattern
Pattern.split(input) cũng tách chuỗi dựa trên regex đã compile.
Ví dụ 2: Tách bằng Pattern.split()
import java.util.Scanner;
import java.util.regex.Pattern;
public class SplittingString {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Nhập văn bản: ");
String input = sc.nextLine();
String regex = "\\d";
Pattern pattern = Pattern.compile(regex);
String[] strArray = pattern.split(input);
for (int i = 0; i < strArray.length; i++) {
System.out.println(strArray[i]);
}
}
}
Nhập văn bản: 1Ramu 2Raju 3Radha 4Rahman 5Rachel
Ramu
Raju
Radha
Rahman
Rachel
So sánh
| Phương thức | Ưu điểm |
|---|---|
String.split() | Ngắn gọn, tiện cho regex đơn giản, dùng một lần |
Pattern.split() | Hiệu quả hơn khi dùng lại regex nhiều lần (compile một lần) |
Lưu ý
- Regex
\\dkhớp mỗi chữ số đơn lẻ. Để tách theo cụm số, dùng\\d+. - Kết quả mảng có thể chứa chuỗi rỗng nếu regex khớp ở đầu/cuối hoặc liên tiếp.