CodeGym /Java 博客 /随机的 /Java 中的 StringTokenizer
John Squirrels
第 41 级
San Francisco

Java 中的 StringTokenizer

已在 随机的 群组中发布
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