StringTokenizer
Lớp cũ (Java 1.0) để tách chuỗi thành token dựa trên delimiter. Hiện nay khuyến khích dùng String.split() hoặc java.util.Scanner.
Constructor chính
StringTokenizer(String str)– delimiter mặc định: whitespace (space, tab, newline)StringTokenizer(String str, String delim)– delimiter tùy chỉnhStringTokenizer(String str, String delim, boolean returnDelims)– có trả về delimiter làm token không
Phương thức quan trọng
hasMoreTokens()– còn token khôngnextToken()– lấy token tiếp theonextToken(String delim)– đổi delimiter cho lần lấy tiếpcountTokens()– số token còn lại
Ví dụ 1: Tách theo whitespace mặc định
import java.util.*;
public class StringTokenizerDemo1 {
public static void main(String[] args) {
StringTokenizer st = new StringTokenizer("Welcome To Tutorials Point");
System.out.println("Số token: " + st.countTokens()); // 4
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
}
}
Kết quả
Số token: 4
Welcome
To
Tutorials
Point
Ví dụ 2: Tách theo delimiter tùy chỉnh (;)
import java.util.*;
public class StringTokenizerDemo2 {
public static void main(String[] args) {
StringTokenizer st = new StringTokenizer("Welcome-To-Tutorials;Point-India;Hyderabad");
System.out.println("Số token (delim mặc định whitespace): " + st.countTokens()); // 1 (cả chuỗi)
// Dùng nextToken(";") để tách theo ;
while (st.hasMoreTokens()) {
System.out.println(st.nextToken(";"));
}
}
}
Kết quả
Số token (delim mặc định whitespace): 1
Welcome-To-Tutorials
Point-India
Hyderabad
Khuyến nghị: Dùng String.split(regex) cho đơn giản, Pattern.splitAsStream() cho Stream API, Scanner cho parsing phức tạp.