java.util
類 StringTokenizer
首先:要知道
StringTokenizer 隻有三個構造方法
1. StringTokenizer(String str) :被分割對象str,分隔符采取預設分割,java預設的分隔符是“空格”、“制表符(‘\t’)”、“換行符(‘\n’)”、“回車符(‘\r’)”。預設的話,所有的分隔符都會同時起作用。
2. StringTokenizer(String str, String delim) :分隔符不采用預設,提供一個指定的分隔符。
3. StringTokenizer(String str, String delim, boolean returnDelims) :指定一個特定的分隔符,同時,指定是否傳回分隔符。如果是true,分隔符将被作為一個token傳回。
API原文描述:If the
returnDelims
flag is
true
, then the delimiter characters are also returned as tokens. Each delimiter is returned as a string of length one. If the flag is
false
, the delimiter characters are skipped and only serve as separators between tokens.
方法也不多,隻有6個:(所有的方法都是public型)
int
countTokens()
對于這個方法API的描述是這樣的:Calculates the number of times that this tokenizer's
nextToken
method can be called before it generates an exception. The current position is not advanced.
它說計算nextToken方法在抛異常以前還能被調用的次數,目前索引不增加。
其實就是說還有幾個元素可以被周遊。傳回的是 目前可以被通路的元素的個數。
方法:
boolean
hasMoreTokens()
boolean
hasMoreElements()
用來判斷目前還有沒有可以周遊的元素
方法:
Object
nextElement()
String
nextToken()
用來獲得目前的元素token,一個傳回String類型,一個傳回Object類型
還有一個方法:
String
nextToken(String delim)
傳回目前索引開始,指定分隔符的下一個token。實際傳回的是索引目前位置到下一個delim出現為止所有的字元。
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()