JavaTM 2 Platform
Standard Ed. 6

java.util
類別 StringTokenizer

java.lang.Object
  繼承者 java.util.StringTokenizer
所有已實作的介面:
Enumeration<Object>

public class StringTokenizer
extends Object
implements Enumeration<Object>

string tokenizer 類別允許應用程序將字元串分解為標記。tokenization 方法比 StreamTokenizer 類別所使用的方法更簡單。StringTokenizer 方法不區分標識符、數和帶引號的字元串,它們也不識別並跳過註釋。

可以在創建時指定,也可以根據每個標記來指定分隔符(分隔標記的字元)集。

StringTokenizer 的實例有兩種行為方式,這取決於它在創建時使用的 returnDelims 標誌的值是 true 還是 false

StringTokenizer 物件在內部維護字元串中要被標記的當前位置。某些操作將此當前位置移至已處理的字元後。

通過截取字元串的一個子串來返回標記,該字元串用於創建 StringTokenizer 物件。

下面是一個使用 tokenizer 的實例。程式碼如下:

     StringTokenizer st = new StringTokenizer("this is a test");
     while (st.hasMoreTokens()) {
         System.out.println(st.nextToken());
     }
 

輸出以下字元串:

     this
     is
     a
     test
 

StringTokenizer 是出於相容性的原因而被保留的遺留類別(雖然在新程式碼中並不鼓勵使用它)。建議所有尋求此功能的人使用 Stringsplit 方法或 java.util.regex 套件。

下面的範例闡明了如何使用 String.split 方法將字元串分解為基本標記:

     String[] result = "this is a test".split("\\s");
     for (int x=0; x<result.length; x++)
         System.out.println(result[x]);
 

輸出以下字元串:

     this
     is
     a
     test
 

從以下版本開始:
JDK1.0
另請參見:
StreamTokenizer

建構子摘要
StringTokenizer(String str)
          為指定字元串建構一個 string tokenizer。
StringTokenizer(String str, String delim)
          為指定字元串建構一個 string tokenizer。
StringTokenizer(String str, String delim, boolean returnDelims)
          為指定字元串建構一個 string tokenizer。
 
方法摘要
 int countTokens()
          計算在產生異常之前可以調用此 tokenizer 的 nextToken 方法的次數。
 boolean hasMoreElements()
          返回與 hasMoreTokens 方法相同的值。
 boolean hasMoreTokens()
          測試此 tokenizer 的字元串中是否還有更多的可用標記。
 Object nextElement()
          除了其宣告返回值是 Object 而不是 String 之外,它返回與 nextToken 方法相同的值。
 String nextToken()
          返回此 string tokenizer 的下一個標記。
 String nextToken(String delim)
          返回此 string tokenizer 的字元串中的下一個標記。
 
從類別 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

建構子詳細資訊

StringTokenizer

public StringTokenizer(String str,
                       String delim,
                       boolean returnDelims)
為指定字元串建構一個 string tokenizer。delim 參數中的所有字元都是分隔標記的分隔符。

如果 returnDelims 標誌為 true,則分隔符字元也作為標記返回。每個分隔符都作為一個長度為 1 的字元串返回。如果標誌為 false,則跳過分隔符,只是用作標記之間的分隔符。

注意,如果 delimnull,則此建構子不拋出異常。但是,嘗試對得到的 StringTokenizer 調用其他方法則可能拋出 NullPointerException

參數:
str - 要解析的字元串。
delim - 分隔符。
returnDelims - 指示是否將分隔符作為標記返回的標誌。
拋出:
NullPointerException - 如果 str 為 null

StringTokenizer

public StringTokenizer(String str,
                       String delim)
為指定字元串建構一個 string tokenizer。delim 參數中的字元都是分隔標記的分隔符。分隔符字元本身不作為標記。

注意,如果 delimnull,則此建構子不拋出異常。但是,嘗試對得到的 StringTokenizer 調用其他方法則可能拋出 NullPointerException

參數:
str - 要解析的字元串。
delim - 分隔符。
拋出:
NullPointerException - 如果 str 為 null

StringTokenizer

public StringTokenizer(String str)
為指定字元串建構一個 string tokenizer。tokenizer 使用預設的分隔符集 " \t\n\r\f",即:空白字元、製表符、換行符、回車(Enter)符和換頁符。分隔符字元本身不作為標記。

參數:
str - 要解析的字元串。
拋出:
NullPointerException - 如果 str 為 null
方法詳細資訊

hasMoreTokens

public boolean hasMoreTokens()
測試此 tokenizer 的字元串中是否還有更多的可用標記。如果此方法返回 true,那麼後續調用無參數的 nextToken 方法將成功地返回一個標記。

返回:
當且僅當該字元串中當前位置後至少有一個標記時才為 true;否則為 false

nextToken

public String nextToken()
返回此 string tokenizer 的下一個標記。

返回:
此 string tokenizer 的下一個標記。
拋出:
NoSuchElementException - 如果此 tokenizer 的字元串中沒有更多標記。

nextToken

public String nextToken(String delim)
返回此 string tokenizer 的字元串中的下一個標記。首先,字元集被更改為字元串 delim 中的字元,該字元集被認為是 StringTokenizer 物件的分隔符。接著返回字元串中當前位置之後的下一個標記。當前位置被提前到所識別的標記前。進行此調用後新的分隔符集仍然保持預設值。

參數:
delim - 新的分隔符。
返回:
轉換到新的分隔符集後的下一個標記。
拋出:
NoSuchElementException - 如果此 tokenizer 的字元串中沒有更多標記。
NullPointerException - 如果 delim 為 null

hasMoreElements

public boolean hasMoreElements()
返回與 hasMoreTokens 方法相同的值。它的存在使得此類別可以實作 Enumeration 介面。

指定者:
介面 Enumeration<Object> 中的 hasMoreElements
返回:
如果有更多標記,則為 true;否則為 false
另請參見:
Enumeration, hasMoreTokens()

nextElement

public Object nextElement()
除了其宣告返回值是 Object 而不是 String 之外,它返回與 nextToken 方法相同的值。它的存在使得此類別可以實作 Enumeration 介面。

指定者:
介面 Enumeration<Object> 中的 nextElement
返回:
字元串中的下一個標記。
拋出:
NoSuchElementException - 如果此 tokenizer 的字元串中沒有更多標記。
另請參見:
Enumeration, nextToken()

countTokens

public int countTokens()
計算在產生異常之前可以調用此 tokenizer 的 nextToken 方法的次數。當前位置沒有提前。

返回:
使用當前分隔符集的字元串中剩餘的標記數。
另請參見:
nextToken()

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only