使用Java中的扫描仪在用户输入中阅读



我正在制作二进制搜索树(BST)和随机BST。这两项工作的所有方法都可以解决我的感觉更简单。失败的代码非常简单。顺便说一句,我正在使用标准重定向读取值,因此我一次输入很多值,一次不是一个值。

while ( console.hasNextInt() ) {
   key = console.nextInt();
   System.out.println(key);
   head.remove( key );
}

控制台是我的扫描仪的名称,而键是用于在树的键中读取的全局变量。调试表明,它正确地通过循环,直到读取最终整数后。之后,即使没有更多的整数可以阅读,它似乎可以重新进入时循环。我显然在某个地方犯了一个错误,但对我来说并不明显,我花了几个小时试图将其重新定位为无济于事。任何帮助将不胜感激。

编辑 - 我输入的一个示例是:

820426496648711744834882112261937632475255968311993216834882112

它在每个数字上读取到834882112,然后重新回到WARE循环,我不知道为什么。

就代码而言,这正是弄乱的代码。其他一切都只是设置扫描仪等

正如我在评论中所说的那样,如果流中的下一个令牌是int,则 hasNextInt()返回true,如果不是int,则false。循环读取了最后一个INT后,hasNextInt()只需等待输入下一个令牌即可决定是否是有效的整数。如果要停止循环,则需要输入不是整数的东西。

相关内容

  • 没有找到相关文章