我有一个练习,给我 x 个输入,我必须用它创建二叉树:https://www.e-olymp.com/en/problems/3096
我已经尝试过以下代码
Scanner inp=new Scanner(System.in);
while(true){
String i=inp.next();
int n=Integer.parseInt(i);
thetree.addNode(n,"Boss");
}
但是当我点击ctrl+z
时它给了我类似
的错误
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:907)
at java.util.Scanner.next(Scanner.java:1416)
at BinaryTree.b1.main(b1.java:41)
我怎样才能获得输入直到 ctl+z
就像在 C++ 中一样?
最佳答案
您想要使用扫描仪为您提供的众多版本的 hasNext 方法之一。
查看相应的hasNext() javadoc:
如果此扫描器的输入中有另一个标记,则返回 true。此方法可能会在等待输入扫描时阻塞。
next() 只是尝试从扫描仪中读取数据,如果没有任何内容(按下 ctrl-z 时会发生什么),就会失败!
关于Java获取输入直到ctrl+z,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40945651/