Lớp StringTokenizer trong Java




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

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à . 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ỏ.