我们已经在我们的字符串文章和Java 中的StringBuffer 的最新文章中使用了字符串

我们总是借助字符串中存在的每个字符对字符串执行操作。如果我们想处理字符串或句子中的每个单词怎么办?

使用 Java 中的 String Tokenizer,我们可以将 String 分解为单词,这些单词称为tokens

在本文中,我们将讨论 Java 中的 StringTokenizer 类,它完成将字符串分解为标记并对这些标记执行操作的任务。

我们将通过示例了解与此类相关的每个方法和构造函数。那么让我们开始吧。

Java 中的 StringTokenizer

的StringTokenizer类存在于一个类的java.util包,它是用来将字符串分解为标记。

换句话说,我们可以将一个句子拆分为它的单词并执行各种操作,例如计算标记的数量或将句子分解为标记。

这个 StringTokenizer 中有构造函数和方法可以帮助我们将句子拆分为标记。StringTokenizer,根据提供给 String tokenizer 类对象的分隔符对字符串进行标记。




通用分隔符是空格、制表符、换行符、回车符和换页符。

这些分隔符被视为默认值,如果用户想要提供自己的分隔符,那么他可以通过将参数中的分隔符定义为参数来提供。

下面通过一个简单的例子来理解Java中StringTokenizer类的使用。

java string t javaStringToKenizer_字符串

现在让我们关注 StringTokenizer 类的编程参数,并全面了解这一点。

Java StringTokenizer 构造函数

StringTokenizer 一般描述了三种类型的构造函数:

1. StringTokenizer(String str)

此构造函数用于执行参数中提供的特定字符串的标记化。

此构造函数采用在 StringTokenizer 类的定义中定义的所有默认分隔符。

分隔符为:空格、换行符、制表符、回车“\r”、换行符“\n”和换页符“\f”。




2. StringTokenizer(String str, String delimiter)

实现此构造函数以根据用户在参数中提供的分隔符执行字符串标记化。这可以通过一个例子来解释:

StringTokenizer st = new StringTokenizer(“techvidvan, article, on, StringTokenizer”, “,”);
while (st.hasMoreTokens())
     System.out.println(st.nextToken());

输出:关于StringTokenizer 的
techvidvan
文章
 

3. StringTokenizer(String str, String delimiter, boolean flag)

此构造函数用于根据分隔符执行字符串标记化,并且还具有显示分隔符的附加功能。

这可以通过一个例子来解释:

boolean = false 示例:

StringTokenizer st = new StringTokenizer(“techvidvan, article, on, StringTokenizer”, “, ”, false);
while (st.hasMoreTokens())
    System.out.println(st.nextToken());

这里如果 boolean 的值为FALSE则令牌不包含分隔符,即输出为:“techvidvan”、“article”、“on”、“StringTokenizer”

boolean = true 示例:

StringTokenizer st = new StringTokenizer(“techvidvan, article, on, StringTokenizer”, “, ”, true);
while (st1.hasMoreTokens())
    System.out.println(st.nextToken());

这里如果 boolean 的值为TRUE则 token 包含分隔符,即,

输出为:
techvidvan

article

on

StringTokenizer




Java StringTokenizer 类的类图

java string t javaStringToKenizer_java string t_02

Java 中 StringTokenizer 类的有用方法

StringTokenizer 类包含许多有用的实例方法,我们可以使用它们来隔离令牌。

让我们开始学习 StringTokenizer 类的每个方法。要使用这些方法,我们显然必须首先创建 StringTokenizer 类的对象,如下所示:

StringTokenizer st = new StringTokenizer(String);

在这里,我们传递的参数是一个需要标记的字符串。

1. int countTokens()

countToken() 方法返回由给定字符串中的任何空格分隔的标记数。

使用这个方法我们可以知道字符串中的标记数,因此我们可以使用这个标记数作为循环参数来非常轻松地处理整个字符串。




让我们用一个例子来讨论这个方法:

了解 StringTokenizer 类的 countTokens() 方法的代码:

package com.techvidvan.stringtokenizer;
import java.util. * ;
import java.io. * ;
public class CountTokensMethod {
  public static void main(String[] args) throws IOException {
    String myString = "This is TechVidvan Tutorial of Java";
    StringTokenizer st = new StringTokenizer(myString);
    int numberOfTokens;
    numberOfTokens = st.countTokens();
    System.out.println("Input string is:" + myString);
    System.out.println("The number of tokens in the string is: " + numberOfTokens);
  }
}

输出:
输入字符串为:这是 Java
的TechVidvan 教程字符串中的标记数为:6

2. 字符串 nextToken()

StringTokenizer 类的 nextToken() 方法以 String 的形式返回下一个标记。当我们第一次使用它时,它返回下一个标记作为字符串的第一个标记。

理解StringTokenizer类的nextToken()方法的代码:

package com.techvidvan.stringtokenizer;
import java.util. * ;
import java.io. * ;
public class NextTokenMethod {
  public static void main(String[] args) throws IOException {
    String myString = "This is TechVidvan Tutorial of Java";
    StringTokenizer st = new StringTokenizer(myString);
    System.out.println("Input string is: " + myString);
    while (st.hasMoreTokens()) {
      System.out.println("The Next token is: " + st.nextToken());
    }
  }
}

输出:
输入字符串是:这是 TechVidvan Java 教程下
一个标记是:这个
下一个标记是:是
下一个标记是:TechVidvan
下一个标记是:教程
下一个标记是:的
下一个标记是:Java

3. String nextToken(字符串分隔符)




nextToken(String delimiter) 方法与我们上面讨论的 nextToken() 方法相同,唯一的区别是它根据我们作为参数提供给此方法的分隔符返回下一个标记。

我们可以使用任何分隔符,例如符号或任何数字或任何字符。

了解StringTokenizer类的nextToken(String delimiter)方法的代码:

package com.techvidvan.stringtokenizer;
import java.util. * ;
import java.io. * ;
public class NextTokenMethod {
  public static void main(String[] args) throws IOException {
    String myString = "This$is$TechVidvan$Tutorial$of Java";
    StringTokenizer st = new StringTokenizer(myString);
    System.out.println("Input string is: " + myString);
    while (st.hasMoreTokens()) {
      System.out.println("The Next token with $ delimiter is: " + st.nextToken("$"));
    }
  }
}

输出:
输入字符串是:This$is$TechVidvan$Tutorial$of Java
带有 $ 分隔符的下一个标记是: This
带有 $ 分隔符
的下一个标记是: is带有 $ 分隔符
的下一个标记是: TechVidvan带有 $ 分隔符的下一个标记是: 教程
下一个带有 $ 分隔符的标记是:Java

4.布尔hasMoreTokens()

此方法仅检查字符串中是否存在更多标记。如果令牌可用,则返回 true,如果没有令牌可用,则返回 false。

我们可以在 while 循环中使用它来处理整个字符串,直到没有更多的标记可用。

了解 StringTokenizer 类的 hasMoreTokens() 方法的代码:




package com.techvidvan.stringtokenizer;
import java.util. * ;
import java.io. * ;
public class HasMoreTokensMethod {
  public static void main(String[] args) throws IOException {
    String myString = "This is TechVidvan Tutorial of Java";
    StringTokenizer st = new StringTokenizer(myString);
    System.out.println("Input string is: " + myString);
    int n = st.countTokens();
    while (n != 0)
    if (st.hasMoreTokens()) {
      System.out.println("The token is present");
      n--;
    }
    System.out.println("There is no more token in the string");
  }
}

输出:
输入字符串是: 这是 Java
的TechVidvan 教程令牌存在
令牌存在
令牌存在
令牌存在
令牌存在
令牌存在
字符串中没有更多令牌

5. 对象 nextElement()

nextElement() 方法类似于 StringTokenizer 类的 nextToken() 方法;

不同之处在于它以 Object 的形式返回值,这与返回 String 的 nextToken() 方法不同。

package com.techvidvan.stringtokenizer;
import java.util. * ;
import java.io. * ;
public class NextElementMethod {
  public static void main(String[] args) throws IOException {
    String myString = "This is TechVidvan Tutorial of Java";
    StringTokenizer st = new StringTokenizer(myString);
    System.out.println("Input string is: " + myString);
    //moving to the next element
    st.nextElement();
    System.out.println("The next element is: " + st.nextElement());
    System.out.println("The next element is: " + st.nextElement());
  }
}

输出:
输入字符串是:这是 Java
的TechVidvan 教程下一个元素是:是
下一个元素是:TechVidvan




Java StringTokenizer 示例

现在,当您熟悉 StringTokenizer 类的所有构造函数和方法时,让我们看一个示例,在以下示例中将它们一起使用。

用于理解 StringTokenizer 类的构造函数和方法的代码:

package com.techvidvan.stringtokenizer;
import java.util. * ;
import java.io. * ;
public class StringBufferMethod {
  public static void main(String[] args) throws IOException {
    String myString = "Welcome to StringTokenizer Tutorial, article on StringTokenizer class";
    StringTokenizer st = new StringTokenizer(myString);
    int numberOfTokens;
    numberOfTokens = st.countTokens();
    System.out.println("The number of tokens in this string is: " + numberOfTokens);
    System.out.println(“Printing all the token with Default constructor: ”);
    while (st.hasMoreTokens()) {
      System.out.println(“The next token is” + st.nextToken());
    }
    StringTokenizer st1 = new StringTokenizer(myString, “, ”);
    System.out.println(“Printing all the token with delimiter“, ”: ”);
    while (st1.hasMoreTokens()) {
      System.out.println(st1.nextToken());
    }
    StringTokenizer st2 = new StringTokenizer(myString, “, ”, true);
    System.out.println(“Printing all the token with delimiter“, ”and also printing delimiter: ”);
    while (st2.hasMoreTokens()) {
      System.out.println(st2.nextToken());
    }
  }
}

输出:
此字符串中的标记数为:8
使用默认构造函数打印所有标记:
下一个标记是欢迎
下一个标记是 to
下一个标记是 StringTokenizer
下一个标记是教程,
下一个标记是文章
下一个标记是on
下一个标记是 StringTokenizer
下一个标记是 class
打印所有带分隔符的标记,:
欢迎使用 StringTokenizer 教程
文章关于 StringTokenizer 类
打印所有带分隔符的标记,以及打印分隔符:
欢迎使用 StringTokenizer 教程

关于 StringTokenizer 类的文章

结论




我们已经到了文章的结尾。我们介绍了 Java 中 String Tokenizer 类的概念。

当我们想要处理字符串的单词而不是字符串的字符时,可以使用它。我们通过实例学习了该类的构造函数和方法,以便您轻松理解它们。

阅读本文后,您现在可以标记字符串或将字符串分解为标记。