java - 无法使用 StringTokenizer 获取所有 token 元素

标签 java

我正在尝试使用 StringTokenizer 按“,”拆分字符串,但无法获取整个值,标记计数显示 3 但仅打印两个元素,我在下面添加了我的代码 如果我尝试过其他两个输入 "Ravi,Tuti,786"- 相同的输出 "Ravi,Tuti,786,pincode"得到三个 token 不是最后一个

public class Tokenizer{
public static void main(String[] args){
String str = "Ravi,Tuti,786";//survival of fittest,journey to get job,update skill,try,get job";
        StringTokenizer stk = new StringTokenizer(str,",");
        System.out.println(stk.countTokens());
        for(int i=0;i<=stk.countTokens();i++){
        System.out.println(stk.nextToken());}
}
}

输出是

3
Ravi
Tuti

最佳答案

hasMoreTokens()nextToken 一起使用:

public class Tokenizer{
    public static void main(String[] args){
    String str = "Ravi,Tuti,786";//survival of fittest,journey to get job,update skill,try,get job";
     StringTokenizer stk = new StringTokenizer(str,",");
     System.out.println(stk.countTokens());

     while (stk.hasMoreTokens()) {
        System.out.println(stk.nextToken());
     }

   }
}

您的方法的问题是您在 for 循环中运行 countTokens,它在调用 nextToken 后发生变化。

如果你想使用for循环,你需要将 token 计数保存到一个变量中:

int numTokens = stk.countTokens();
for (int i = 0; i < numTokens; i++) {
  System.out.println(stk.nextToken());
}

关于java - 无法使用 StringTokenizer 获取所有 token 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51956996/

相关文章:

java - 从 ArrayList<HashMap<String, String>> 中检索某些值

java - Spring Bean 构造函数无法设置 POJO 属性

java - 找不到 Hibernate 4 ConnectionProvider 类

java - 如何解决由 : java. lang.ClassNotFoundException 引起的此错误

java - 我如何匹配字符串?

Java 套接字未收到来自 Printwriter 的响应

java - 为什么我会收到此 ClassCastException?在 eclipse 上工作,但不在 IntelliJ 上工作

java - 圆圈会粘在游戏引擎中的东西上

java - 流媒体在线广播,主线程上的工作太多

java - Java比较两个数组列表的每个元素