【问题标题】:Why doesn't StringTokenizer understand the nextToken function? [duplicate]为什么 StringTokenizer 不理解 nextToken 函数? [复制]
【发布时间】:2016-08-09 10:17:04
【问题描述】:

我做了一个计算器,现在改进它,让它读取一行代码并将其转换为三个变量a:第一个数字, b:第二个数字, 和功能:它的作用 例如:10 * 10。这是我的代码:

System.out.println("problem: ");
problem = user_input.next();
StringTokenizer token = new StringTokenizer(problem," ");
a = Integer.parseInt(token.nextToken());
String Menu = (token.nextToken());
b = Integer.parseInt(token.nextToken());

它根本不理解 nextToken,它在Exception in thread "main" java.util.NoSuchElementException at java.util.StringTokenizer.nextToken(Unknown Source) at mycalc.main(mycalc.java:20) 上说, 我还问了一位朋友,他实际上向我展示了这是如何工作的,他也很困惑。请尽你所能帮助我!

【问题讨论】:

标签: java variables input int stringtokenizer


【解决方案1】:

当你这样做时

problem = user_input.next();

这只是一个单词。例如如果你输入10 * 10,那么这个词就是10

所以当你这样做时

String Menu = (token.nextToken());

没有错误提示的元素。

注意:您以两种不同的方式解析单词。只使用扫描仪会更简单。

System.out.println("problem: ");
a = user_input.nextInt();
String menu = user_input.next();
b = user_input.nextInt();

【讨论】:

  • StringTokenizer 不是应该在空格之间分成几组吗?
  • 不鼓励按照常见问题解答meta.stackexchange.com/q/10841 回答重复的问题。应该投票关闭。
  • @Tunaki 感谢您的评论。虽然副本没有解释为什么不应使用 StringTokenizer。
  • @Tunaki 是的,虽然不是那个。它谈到了使用 split 与 Scanner 结合使用时,当您想在空间上进行拆分时,这是 Scanner 默认执行的操作。
  • @Tunaki 这是对“请尽你所能帮助我”的肤浅解释,但我们可以同意不同意。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-22
  • 2021-08-18
  • 2012-12-18
  • 1970-01-01
  • 1970-01-01
  • 2013-12-08
  • 2021-06-21
相关资源
最近更新 更多