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()方法,因为我们只对各个标记本身感兴趣。
GO TO FULL VERSION