類 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
構造方法摘要 |
---|
為指定字元串構造一個 string tokenizer。 |
為指定字元串構造一個 string tokenizer。 |
為指定字元串構造一個 string tokenizer。 |
方法摘要 | |
---|---|
| 計算在生成異常之前可以調用此 tokenizer 的 方法的次數。 |
| 傳回與 方法相同的值。 |
| 測試此 tokenizer 的字元串中是否還有更多的可用标記。 |
| 除了其聲明傳回值是 而不是 之外,它傳回與 方法相同的值。 |
| 傳回此 string tokenizer 的下一個标記。 |
| 傳回此 string tokenizer 的字元串中的下一個标記。 |
從類 java.lang.Object 繼承的方法 |
---|
|
構造方法詳細資訊 |
---|
StringTokenizer
public StringTokenizer(String str,
String delim,
boolean returnDelims)
- 為指定字元串構造一個 string tokenizer。
delim
參數中的所有字元都是分隔标記的分隔符。
如果
标志為returnDelims
,則分隔符字元也作為标記傳回。每個分隔符都作為一個長度為 1 的字元串傳回。如果标志為true
false
,則跳過分隔符,隻是用作标記之間的分隔符。
注意,如果 delim 為 null,則此構造方法不抛出異常。但是,嘗試對得到的 StringTokenizer 調用其他方法則可能抛出NullPointerException。
- 參數:
-
- 要解析的字元串。str
-
- 分隔符。delim
-
- 訓示是否将分隔符作為标記傳回的标志。returnDelims
抛出: -
- 如果 str 為NullPointerException
。null
-
StringTokenizer
public StringTokenizer(String str,
String delim)
- 為指定字元串構造一個 string tokenizer。
delim
參數中的字元都是分隔标記的分隔符。分隔符字元本身不作為标記。
注意,如果 delim 為 null,則此構造方法不抛出異常。但是,嘗試對得到的 StringTokenizer 調用其他方法則可能抛出NullPointerException。
- 參數:
-
- 要解析的字元串。str
-
- 分隔符。delim
抛出: -
- 如果 str 為NullPointerException
。null
-
StringTokenizer
public StringTokenizer(String str)
- 為指定字元串構造一個 string tokenizer。tokenizer 使用預設的分隔符集
,即:空白字元、制表符、換行符、回車符和換頁符。分隔符字元本身不作為标記。" \t\n\r\f"
- 參數:
-
- 要解析的字元串。str
抛出: -
- 如果 str 為NullPointerException
。null
-
方法詳細資訊 |
---|
hasMoreTokens
public boolean hasMoreTokens()
- 測試此 tokenizer 的字元串中是否還有更多的可用标記。如果此方法傳回 true,那麼後續調用無參數的 nextToken 方法将成功地傳回一個标記。
-
- 傳回:
- 當且僅當該字元串中目前位置後至少有一個标記時才為
;否則為true
。false
- 當且僅當該字元串中目前位置後至少有一個标記時才為
nextToken
public String nextToken()
- 傳回此 string tokenizer 的下一個标記。
-
- 傳回:
- 此 string tokenizer 的下一個标記。 抛出:
-
- 如果此 tokenizer 的字元串中沒有更多标記。NoSuchElementException
nextToken
public String nextToken(String delim)
- 傳回此 string tokenizer 的字元串中的下一個标記。首先,字元集被更改為字元串 delim 中的字元,該字元集被認為是 StringTokenizer 對象的分隔符。接着傳回字元串中目前位置之後的下一個标記。目前位置被提前到所識别的标記前。進行此調用後新的分隔符集仍然保持預設值。
-
- 參數:
-
- 新的分隔符。delim
傳回: - 轉換到新的分隔符集後的下一個标記。 抛出:
-
- 如果此 tokenizer 的字元串中沒有更多标記。NoSuchElementException
-
- 如果 delim 為NullPointerException
。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
- 接口
-
- 傳回:
- 字元串中的下一個标記。 抛出:
-
- 如果此 tokenizer 的字元串中沒有更多标記。NoSuchElementException
另請參見: -
,Enumeration
nextToken()
countTokens
public int countTokens()
- 計算在生成異常之前可以調用此 tokenizer 的
方法的次數。目前位置沒有提前。nextToken
-
- 傳回:
- 使用目前分隔符集的字元串中剩餘的标記數。 另請參見:
-
nextToken()