Lớp java.util.StringTokenizer cho phép bạn chia một chuỗi thành các token. Đây là cách đơn giản để chia chuỗi. Lớp này không cung cấp phương tiện để phân biệt các số, các chuỗi đã được trích dẫn, các định danh indentifier, … giống như lớp StreamTokenizer. Chúng ta sẽ tìm hiểu về lớp StreamTokenizer trong chương về I/O.
Các Constructor của lớp StringTokenizer trong Java
Có 3 Constructor được định nghĩa trong lớp StringTokenizer.
Constructor | Miêu tả |
---|---|
StringTokenizer(String str) | Tạo StringTokenizer với chuỗi string đã cho |
StringTokenizer(String str, String delim) | Tạo StringTokenizer với chuỗi string và dấu phân tách delimeter đã cho |
StringTokenizer(String str, String delim, boolean returnValue) | Tạo StringTokenizer với chuỗi string và dấu tách delimeter và kiểu trả về returnValue đã cho. Nếu kiểu trả về là true, các ký tự phân tách được xem như là các token. Nếu nó là false, các ký tự phân tách phục vụ như là các token riêng rẽ |
Các phương thức của lớp StringTokenizer trong Java
Lớp StringTokenizer có 6 phương thức hữu ích, được trình bày trong bảng dưới đây:
Phương thức public | Miêu tả |
---|---|
boolean hasMoreTokens() | Kiểm tra xem có nhiều token có sẵn không |
String nextToken() | Trả về token tiếp theo từ đối tượng StringTokenizer |
String nextToken(String delim) | Trả về token tiếp theo dựa trên dấu phân tách delim |
boolean hasMoreElements() | Giống như phương thức hasMoreTokens() |
Object nextElement() | Giống như nextToken() nhưng kiểu trả về của nó là Object |
int countTokens() | Trả về tổng số token |
Ví dụ đơn giản về lớp StringTokenizer trong Java
Phương thức public | Miêu tả |
---|---|
boolean hasMoreTokens() | Kiểm tra xem có nhiều token có sẵn không |
String nextToken() | Trả về token tiếp theo từ đối tượng StringTokenizer |
String nextToken(String delim) | Trả về token tiếp theo dựa trên dấu phân tách delim |
boolean hasMoreElements() | Giống như phương thức hasMoreTokens() |
Object nextElement() | Giống như nextToken() nhưng kiểu trả về của nó là Object |
int countTokens() | Trả về tổng số token |
Ví dụ đơn giản sau sẽ chia một chuỗi "Toi lam viec o HaNoi" thành các token dựa vào các khoảng trắng whitespace.
import java.util.StringTokenizer; public class Simple{ public static void main(String args[]){ StringTokenizer st = new StringTokenizer("Toi lam viec o HaNoi"," "); while (st.hasMoreTokens()) { System.out.println(st.nextToken()); } } }
Chương trình trên sẽ cho kết quả dạng:
Toi lam viec o HaNoi
Ví dụ phương thức nextToken(String delim) của lớp StringTokenizer
import java.util.*; public class Test { public static void main(String[] args) { StringTokenizer st = new StringTokenizer("Toi,lam,viec,o,HaNoi"); // in ra token tiep theo System.out.println("Token tiep theo la : " + st.nextToken(",")); } }
Chương trình trên sẽ cho kết quả dạng:
Token tiep theo la : Toi
Ghi chú: Bây giờ, lớp StringTokenizer là cũ. Mình đề nghị bạn nên sử dụng phương thức split() của lớp String hoặc Regex (Regular Expression) để chia chuỗi thành các token nhỏ.