鴻蒙OS StringTokenizer

2022-08-09 11:27 更新

StringTokenizer

java.lang.Object

|---java.util.StringTokenizer

public class StringTokenizer
extends Object
implements Enumeration<Object>

字符串標記器類允許應用程序將字符串分解為標記。 標記化方法比 StreamTokenizer 類使用的方法簡單得多。 StringTokenizer 方法不區(qū)分標識符、數(shù)字和帶引號的字符串,也不識別和跳過注釋。

分隔符集(分隔標記的字符)可以在創(chuàng)建時指定,也可以基于每個標記指定。

StringTokenizer 實例的行為方式有兩種,具體取決于它是使用 returnDelims 標志創(chuàng)建的,其值為 true 或 false:

  • 如果標志為 false,則分隔符用于分隔標記。 記號是非分隔符的連續(xù)字符的最大序列。
  • 如果標志為 true,則分隔符本身被視為標記。 因此,標記要么是一個分隔符,要么是非分隔符的最大連續(xù)字符序列。

StringTokenizer 對象在內部維護要標記化的字符串中的當前位置。 一些操作將當前位置推進到處理的字符之后。

通過獲取用于創(chuàng)建 StringTokenizer 對象的字符串的子字符串來返回令牌。

以下是使用分詞器的一個示例。 編碼:

     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

構造函數(shù)摘要

構造函數(shù) 描述
StringTokenizer(String str) 為指定的字符串構造一個字符串標記器。
StringTokenizer(String str, String delim) 為指定的字符串構造一個字符串標記器。
StringTokenizer(String str, String delim, boolean returnDelims) 為指定的字符串構造一個字符串標記器。

方法總結

修飾符和類型 方法 描述
int countTokens() 計算在生成異常之前可以調用此標記器的 nextToken 方法的次數(shù)。
boolean hasMoreElements() 返回與 hasMoreTokens 方法相同的值。
boolean hasMoreTokens() 測試此標記器的字符串中是否有更多標記可用。
Object nextElement() 返回與 nextToken 方法相同的值,只是它聲明的返回值是 Object 而不是 String。
String nextToken() 從該字符串標記器返回下一個標記。
String nextToken(String delim) 返回此字符串標記器的字符串中的下一個標記。
從類 java.lang.Object 繼承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

構造函數(shù)詳細信息

StringTokenizer

public StringTokenizer(String str, String delim, boolean returnDelims)

為指定的字符串構造一個字符串標記器。 delim 參數(shù)中的所有字符都是分隔標記的分隔符。

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

請注意,如果 delim 為 null,則此構造函數(shù)不會引發(fā)異常。 但是,嘗試在生成的 StringTokenizer 上調用其他方法可能會導致 NullPointerException。

參數(shù):

參數(shù)名稱 參數(shù)描述
str 要解析的字符串。
delim 分隔符。
returnDelims 指示是否將分隔符作為標記返回的標志。

Throws:

Throw名稱 Throw描述
NullPointerException 如果 str 為空

StringTokenizer

public StringTokenizer(String str, String delim)

為指定的字符串構造一個字符串標記器。 delim 參數(shù)中的字符是分隔標記的分隔符。 分隔符本身不會被視為標記。

請注意,如果 delim 為 null,則此構造函數(shù)不會引發(fā)異常。 但是,嘗試在生成的 StringTokenizer 上調用其他方法可能會導致 NullPointerException。

參數(shù):

參數(shù)名稱 參數(shù)描述
str 要解析的字符串。
delim 分隔符。

Throws:

Throw名稱 Throw描述
NullPointerException 如果 str 為空

StringTokenizer

public StringTokenizer(String str)

為指定的字符串構造一個字符串標記器。 分詞器使用默認分隔符集,即“\t\n\r\f”:空格字符、制表符、換行符、回車符和換頁符。 分隔符本身不會被視為標記。

參數(shù):

參數(shù)名稱 參數(shù)描述
str 要解析的字符串。

Throws:

Throw名稱 Throw描述
NullPointerException 如果 str 為空

方法詳情

hasMoreTokens

public boolean hasMoreTokens()

測試此標記器的字符串中是否有更多標記可用。 如果此方法返回 true,則后續(xù)調用不帶參數(shù)的 nextToken 將成功返回令牌。

返回:

當且僅當在當前位置之后的字符串中至少有一個標記時才為 true; 否則為 false。

nextToken

public String nextToken()

從該字符串標記器返回下一個標記。

返回:

此字符串標記器的下一個標記。

Throws:

Throw名稱 Throw描述
NoSuchElementException 如果此標記器的字符串中沒有更多標記。

nextToken

public String nextToken(String delim)

返回此字符串標記器的字符串中的下一個標記。 首先,將此 StringTokenizer 對象視為分隔符的字符集更改為字符串 delim 中的字符。 然后返回當前位置之后的字符串中的下一個標記。 當前位置超出了識別的標記。 新的分隔符集在此調用后仍為默認值。

參數(shù):

參數(shù)名稱 參數(shù)描述
delim 新的分隔符。

返回:

下一個標記,在切換到新的分隔符集之后。

Throws:

Throw名稱 Throw描述
NoSuchElementException 如果此標記器的字符串中沒有更多標記。
NullPointerException 如果 delim 為空

hasMoreElements

public boolean hasMoreElements()

返回與 hasMoreTokens 方法相同的值。 它的存在是為了讓這個類可以實現(xiàn) Enumeration 接口。

指定者:

接口 EnumerationObject 中的 hasMoreElements

返回:

如果有更多令牌,則為 true; 否則為 false。

nextElement

public Object nextElement()

返回與 nextToken 方法相同的值,只是它聲明的返回值是 Object 而不是 String。 它的存在是為了讓這個類可以實現(xiàn) Enumeration 接口。

指定者:

接口 EnumerationObject 中的 nextElement

返回:

字符串中的下一個標記。

Throws:

Throw名稱 Throw描述
NoSuchElementException 如果此標記器的字符串中沒有更多標記。

countTokens

public int countTokens()

計算在生成異常之前可以調用此標記器的 nextToken 方法的次數(shù)。 當前位置未提前。

返回:

使用當前分隔符集在字符串中剩余的標記數(shù)。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號