Trong câu lệnh đầu tiên, StringTokenizer của “st1” sẽ được xây dựng bằng cách sử dụng
các chuỗi được cung cấp và các dấu phân cách mặc định. Các dấu phân cách mặc định là
khoảng trắng, tab, dòng mới, và các ký tự xuống dòng. Các dấu phân cách này thì hữu
dụng khi phân tách văn bản, như với “st1”.
Câu lệnh thứ hai trong ví dụ trên xây dựng một lớp StringTokenizer cho các biểu thức toán
học bằng cách sử dụng các ký hiệu *, +, /, và -.
Câu lệnh thứ 3, StringTokenizer của “st3” sẽ thông báo chuỗi được cung cấp chỉ bằng cách
sử dụng ký tự dấu phẩy như một dấu phân cách.
Lớp StringTokenizer thực thi giao diện bảng liệt kê. Vì thế, nó bao gồm các phương thức
hasMoreElements() và nextElement(). Các phương thức non-private của lớp
StringTokenizer được tóm tắt trong bảng sau:
Phương thức
Mục đích
countTokens()
Trả về số các token còn lại.
hasMoreElements()
Trả về True nếu nhiều phần tử đang
được đánh dấu trong chuỗi. Nó thì
giống hệt như hasMoreTokens.
hasMoreTokens()
Trả về True nếu nhiều tokens đang
được đánh dấu trong chuỗi. Nó thì
giống hệt như hasMoreElements.
nextElement()
Trả về phần tử kế tiếp trong chuỗi.
Nó thì giống như nextToken.
nextToken()
Trả về Token kế tiếp trong chuỗi. Nó
thì giống như nextElement.
nextToken(String)
Thay đổi bộ dấu phân cách đến chuỗi
được chỉ định, và sau đó trả về token
kế tiếp trong chuỗi.
Bảng 4.13 Các phương thức lớp StringTokenizer.
Hãy xem xét chương trình đã cho ở bên dưới. Trong ví dụ này, hai đối tượng
StringTokenizer đã được tạo ra. Đầu tiên, “st1” được sử dụng để phân tách một biểu thức
toán học. Thứ hai, “st2” phân tách một dòng của các trường được phân cách bởI dấu
phẩy. Cả hai tokenizer, phương thức hasMoreTokens() và nextToken() được sử dụng đế
lặp đi lặp lại thông qua tập các token, và sau đó được hiển thị.
Chương trình 4.13
import java.util.*;
public class StringTokenizerImplementer
{
public static void main(String args[])
{
// đặt một biểu thức toán học trong một chuỗi và tạo một tokenizer cho chuỗi đó.
String mathExpr = “4*3+2/4”;
StringTokenizer st1 = new StringTokenizer(mathExpr,”*+/-“, true);