天天看點

StringTokenizer 類 StringTokenizer

類 StringTokenizer

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

  • 如果标志為 

    false

    ,則分隔符字元用來分隔标記。标記是連續字元(不是分隔符)的最大序列。
  • 如果标志為 

    true

    ,則認為那些分隔符字元本身即為标記。是以标記要麼是一個分隔符字元,要麼是那些連續字元(不是分隔符)的最大序列。

StringTokenizer 對象在内部維護字元串中要被标記的目前位置。某些操作将此目前位置移至已處理的字元後。

通過截取字元串的一個子串來傳回标記,該字元串用于建立 StringTokenizer 對象。

下面是一個使用 tokenizer 的執行個體。代碼如下:

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

輸出以下字元串:

this
     is
     a
     test
       

StringTokenizer 是出于相容性的原因而被保留的遺留類(雖然在新代碼中并不鼓勵使用它)。建議所有尋求此功能的人使用String 的 split 方法或 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

,則跳過分隔符,隻是用作标記之間的分隔符。

注意,如果 delim 為 null,則此構造方法不抛出異常。但是,嘗試對得到的 StringTokenizer 調用其他方法則可能抛出NullPointerException。

參數:

str

 - 要解析的字元串。

delim

 - 分隔符。

returnDelims

 - 訓示是否将分隔符作為标記傳回的标志。
抛出:

NullPointerException

 - 如果 str 為 

null

StringTokenizer

public StringTokenizer(String str,
                       String delim)      
為指定字元串構造一個 string tokenizer。

delim

 參數中的字元都是分隔标記的分隔符。分隔符字元本身不作為标記。

注意,如果 delim 為 null,則此構造方法不抛出異常。但是,嘗試對得到的 StringTokenizer 調用其他方法則可能抛出NullPointerException。

參數:

str

 - 要解析的字元串。

delim

 - 分隔符。
抛出:

NullPointerException

 - 如果 str 為 

null

StringTokenizer

public StringTokenizer(String str)      
為指定字元串構造一個 string tokenizer。tokenizer 使用預設的分隔符集 

" \t\n\r\f"

,即:空白字元、制表符、換行符、回車符和換頁符。分隔符字元本身不作為标記。
參數:

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()