CodeGym /Java Blog /Toto sisi /Java 中的 StringTokenizer
John Squirrels
等級 41
San Francisco

Java 中的 StringTokenizer

在 Toto sisi 群組發布
Java 中的StringTokenizer類別提供了String分詞器方法,用於根據指定的分隔符號將字串拆分為標記。標記器字串可以是分隔標記的任何字串,例如逗號、分號或空格。使用StringTokenizer類別的tokenizer String方法,我們可以將字串拆分為其組成部分。透過呼叫nextToken()方法,我們可以依序檢索每個令牌,並使用hasMoreTokens()方法,我們可以檢查是否還有剩餘的令牌。StringTokenizer類別的 length() 方法可用取得每個標記的長度。StringTokenizer String是一個有用的字串操作工具,可用於解析 CSV 檔案、URL 或其他基於文字的資料。StringTokenizer類別是Java.util套件的一部分,提供了將字串拆分為標記的簡單方法這個類別有兩個建構函數,一個建構函數採用要標記化的字串和分隔符字元或字串,另一個建構函數採用相同的參數以及指示是否將分隔符號作為標記包含的布林標誌。建立StringTokenizer物件後,您可以使用其各種方法來迭代標記並對它們執行各種操作。

標記化方法

標記化方法是將字串分割成更小的部分或標記的過程。此過程是使用分隔符號執行的,分隔符號可以是分隔每個標記的字元或字串。例如,考慮以下字串:
String input = "Hello World! How are you today?";
如果我們想將此字串拆分為單獨的單字,我們可以使用空格字元作為分隔符,如下所示:
StringTokenizer tokenizer = new StringTokenizer(input, " ");
while (tokenizer.hasMoreTokens()) {
    String token = tokenizer.nextToken();
    System.out.println(token);
}

輸出

你好世界!你今天怎麼樣?
在此範例中,我們使用輸入字串和空格字元作為分隔符號來建立一個新的StringTokenizer物件。然後,我們使用hasMoreTokens()方法循環存取令牌,並使用nextToken()方法檢索每個令牌。最後,我們將每個令牌列印到控制台。

令牌長度

除了nextToken()方法提供的基本功能之外,StringTokenizer類別還提供用於檢索每個標記的長度以及透過索引檢索特定標記的方法。若要取得目前令牌的長度,可以使用token.length()方法。例如:
public class StringTokenizerExample {
    public static void main(String[] args) {
        String input = "Hello World! How are you today?";
        StringTokenizer tokenizer = new StringTokenizer(input, " ");
        while (tokenizer.hasMoreTokens()) {
            String token = tokenizer.nextToken();
            System.out.println("Token: " + token + " Length: " + token.length());
        }
    }
}

輸出

標記:Hello 長度:5 標記:世界!長度:6 令牌:怎麼樣 長度:3 令牌:是 長度:3 令牌:你 長度:3 令牌:今天?長度:6
在此範例中,我們像以前一樣檢索每個標記,但也使用length()方法來取得每個標記的長度,然後將其列印到控制台。

例子

讓我們來看一個完整的範例,示範如何在 Java 中 使用StringTokenizer類別:
public class Example {
    public static void main(String[] args) {
        String input = "John,Doe,123 Main St.,Anytown,USA";
        StringTokenizer tokenizer = new StringTokenizer(input, ",");
        while (tokenizer.hasMoreTokens()) {
            System.out.println(tokenizer.nextToken());
        }
    }
}

輸出

John Doe 123 Main St. Anytown 美國
在此範例中,我們有一個字串,表示以逗號分隔的值清單。我們使用該字串和逗號作為分隔符號來建立一個新的StringTokenizer物件。然後,我們使用hasMoreTokens()方法循環存取令牌,並使用nextToken()方法檢索每個令牌。最後,我們將每個令牌列印到控制台。請注意,在此範例中我們沒有使用length()方法,因為我們只對各個標記本身感興趣。

StreamTokenizer 類

雖然StringTokenizer類別提供了將字串拆分為標記的簡單方法,但它確實有一些限制。例如,它無法處理多個分隔符號或不同類型的標記,例如數字和單字。如果您需要更進階的標記化功能,可以使用StreamTokenizer類別。此類別提供了更大的靈活性,可以處理各種輸入類型。 為了鞏固您所學到的知識,我們建議您觀看我們的 Java 課程中的影片課程

結論

在本文中,我們探索了Java 中的StringTokenizer類,並了解如何使用它將字串拆分為標記。我們也了解如何使用該類別的一些方法對標記執行各種操作,例如獲取其長度以及透過索引檢索特定標記。雖然StringTokenizer類別是一個簡單且有用的工具,但它確實有其限制。如果您需要更進階的標記化功能,請考慮使用StreamTokenizer類別或更強大的函式庫,例如 Apache Commons Lang。請記住,在決定使用哪些工具和技術時,請務必考慮專案的具體需求。透過對 Java 字串操作類別和方法的深入了解,您甚至可以輕鬆處理最複雜的字串操作任務。
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION