W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
java.lang.Object
|---java.util.StringTokenizer
public class StringTokenizer
extends Object
implements Enumeration<Object>
字符串標(biāo)記器類(lèi)允許應(yīng)用程序?qū)⒆址纸鉃闃?biāo)記。 標(biāo)記化方法比 StreamTokenizer 類(lèi)使用的方法簡(jiǎn)單得多。 StringTokenizer 方法不區(qū)分標(biāo)識(shí)符、數(shù)字和帶引號(hào)的字符串,也不識(shí)別和跳過(guò)注釋。
分隔符集(分隔標(biāo)記的字符)可以在創(chuàng)建時(shí)指定,也可以基于每個(gè)標(biāo)記指定。
StringTokenizer 實(shí)例的行為方式有兩種,具體取決于它是使用 returnDelims 標(biāo)志創(chuàng)建的,其值為 true 或 false:
StringTokenizer 對(duì)象在內(nèi)部維護(hù)要標(biāo)記化的字符串中的當(dāng)前位置。 一些操作將當(dāng)前位置推進(jìn)到處理的字符之后。
通過(guò)獲取用于創(chuàng)建 StringTokenizer 對(duì)象的字符串的子字符串來(lái)返回令牌。
以下是使用分詞器的一個(gè)示例。 編碼:
StringTokenizer st = new StringTokenizer("this is a test");
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
打印以下輸出:
this
is
a
test
StringTokenizer 是一個(gè)遺留類(lèi),出于兼容性原因保留,但不鼓勵(lì)在新代碼中使用它。 建議任何尋求此功能的人改用 String 的 split 方法或 java.util.regex 包。
以下示例說(shuō)明了如何使用 String.split 方法將字符串分解為其基本標(biāo)記:
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
構(gòu)造函數(shù) | 描述 |
---|---|
StringTokenizer(String str) | 為指定的字符串構(gòu)造一個(gè)字符串標(biāo)記器。 |
StringTokenizer(String str, String delim) | 為指定的字符串構(gòu)造一個(gè)字符串標(biāo)記器。 |
StringTokenizer(String str, String delim, boolean returnDelims) | 為指定的字符串構(gòu)造一個(gè)字符串標(biāo)記器。 |
修飾符和類(lèi)型 | 方法 | 描述 |
---|---|---|
int | countTokens() | 計(jì)算在生成異常之前可以調(diào)用此標(biāo)記器的 nextToken 方法的次數(shù)。 |
boolean | hasMoreElements() | 返回與 hasMoreTokens 方法相同的值。 |
boolean | hasMoreTokens() | 測(cè)試此標(biāo)記器的字符串中是否有更多標(biāo)記可用。 |
Object | nextElement() | 返回與 nextToken 方法相同的值,只是它聲明的返回值是 Object 而不是 String。 |
String | nextToken() | 從該字符串標(biāo)記器返回下一個(gè)標(biāo)記。 |
String | nextToken(String delim) | 返回此字符串標(biāo)記器的字符串中的下一個(gè)標(biāo)記。 |
從類(lèi) java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
public StringTokenizer(String str, String delim, boolean returnDelims)
為指定的字符串構(gòu)造一個(gè)字符串標(biāo)記器。 delim 參數(shù)中的所有字符都是分隔標(biāo)記的分隔符。
如果 returnDelims 標(biāo)志為 true,則分隔符也作為標(biāo)記返回。 每個(gè)分隔符都作為長(zhǎng)度為 1 的字符串返回。 如果標(biāo)志為 false,則跳過(guò)分隔符,僅用作標(biāo)記之間的分隔符。
請(qǐng)注意,如果 delim 為 null,則此構(gòu)造函數(shù)不會(huì)引發(fā)異常。 但是,嘗試在生成的 StringTokenizer 上調(diào)用其他方法可能會(huì)導(dǎo)致 NullPointerException。
參數(shù):
參數(shù)名稱(chēng) | 參數(shù)描述 |
---|---|
str | 要解析的字符串。 |
delim | 分隔符。 |
returnDelims | 指示是否將分隔符作為標(biāo)記返回的標(biāo)志。 |
Throws:
Throw名稱(chēng) | Throw描述 |
---|---|
NullPointerException | 如果 str 為空 |
public StringTokenizer(String str, String delim)
為指定的字符串構(gòu)造一個(gè)字符串標(biāo)記器。 delim 參數(shù)中的字符是分隔標(biāo)記的分隔符。 分隔符本身不會(huì)被視為標(biāo)記。
請(qǐng)注意,如果 delim 為 null,則此構(gòu)造函數(shù)不會(huì)引發(fā)異常。 但是,嘗試在生成的 StringTokenizer 上調(diào)用其他方法可能會(huì)導(dǎo)致 NullPointerException。
參數(shù):
參數(shù)名稱(chēng) | 參數(shù)描述 |
---|---|
str | 要解析的字符串。 |
delim | 分隔符。 |
Throws:
Throw名稱(chēng) | Throw描述 |
---|---|
NullPointerException | 如果 str 為空 |
public StringTokenizer(String str)
為指定的字符串構(gòu)造一個(gè)字符串標(biāo)記器。 分詞器使用默認(rèn)分隔符集,即“\t\n\r\f”:空格字符、制表符、換行符、回車(chē)符和換頁(yè)符。 分隔符本身不會(huì)被視為標(biāo)記。
參數(shù):
參數(shù)名稱(chēng) | 參數(shù)描述 |
---|---|
str | 要解析的字符串。 |
Throws:
Throw名稱(chēng) | Throw描述 |
---|---|
NullPointerException | 如果 str 為空 |
public boolean hasMoreTokens()
測(cè)試此標(biāo)記器的字符串中是否有更多標(biāo)記可用。 如果此方法返回 true,則后續(xù)調(diào)用不帶參數(shù)的 nextToken 將成功返回令牌。
返回:
當(dāng)且僅當(dāng)在當(dāng)前位置之后的字符串中至少有一個(gè)標(biāo)記時(shí)才為 true; 否則為 false。
public String nextToken()
從該字符串標(biāo)記器返回下一個(gè)標(biāo)記。
返回:
此字符串標(biāo)記器的下一個(gè)標(biāo)記。
Throws:
Throw名稱(chēng) | Throw描述 |
---|---|
NoSuchElementException | 如果此標(biāo)記器的字符串中沒(méi)有更多標(biāo)記。 |
public String nextToken(String delim)
返回此字符串標(biāo)記器的字符串中的下一個(gè)標(biāo)記。 首先,將此 StringTokenizer 對(duì)象視為分隔符的字符集更改為字符串 delim 中的字符。 然后返回當(dāng)前位置之后的字符串中的下一個(gè)標(biāo)記。 當(dāng)前位置超出了識(shí)別的標(biāo)記。 新的分隔符集在此調(diào)用后仍為默認(rèn)值。
參數(shù):
參數(shù)名稱(chēng) | 參數(shù)描述 |
---|---|
delim | 新的分隔符。 |
返回:
下一個(gè)標(biāo)記,在切換到新的分隔符集之后。
Throws:
Throw名稱(chēng) | Throw描述 |
---|---|
NoSuchElementException | 如果此標(biāo)記器的字符串中沒(méi)有更多標(biāo)記。 |
NullPointerException | 如果 delim 為空 |
public boolean hasMoreElements()
返回與 hasMoreTokens 方法相同的值。 它的存在是為了讓這個(gè)類(lèi)可以實(shí)現(xiàn) Enumeration 接口。
指定者:
接口 EnumerationObject 中的 hasMoreElements
返回:
如果有更多令牌,則為 true; 否則為 false。
public Object nextElement()
返回與 nextToken 方法相同的值,只是它聲明的返回值是 Object 而不是 String。 它的存在是為了讓這個(gè)類(lèi)可以實(shí)現(xiàn) Enumeration 接口。
指定者:
接口 EnumerationObject 中的 nextElement
返回:
字符串中的下一個(gè)標(biāo)記。
Throws:
Throw名稱(chēng) | Throw描述 |
---|---|
NoSuchElementException | 如果此標(biāo)記器的字符串中沒(méi)有更多標(biāo)記。 |
public int countTokens()
計(jì)算在生成異常之前可以調(diào)用此標(biāo)記器的 nextToken 方法的次數(shù)。 當(dāng)前位置未提前。
返回:
使用當(dāng)前分隔符集在字符串中剩余的標(biāo)記數(shù)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話(huà):173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: