【问题标题】:Java get input until ctrl+z [duplicate]Java在ctrl + z之前获取输入[重复]
【发布时间】:2017-04-18 03:47:08
【问题描述】:

我有一个练习,它给了我 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) 这样的错误 我如何才能像在 c++ 中一样在 ctl+z 之前获得输入?

【问题讨论】:

  • @esprittn 谢谢它的工作!
  • 仅作记录:如果您发现我的回答有帮助,您可能仍会接受。感谢您考虑...
  • @GhostCat 抱歉,页面的功能太多,所以我无法全部阅读。
  • 我不确定你在这里告诉我什么。关键是:当你想开始编码时,那将需要时间。例如:有时间学习您打算使用的课程。当您认真对待您所做的事情时,您应该认真了解您打算使用的东西。否则,你只是从一个“奇怪的问题”走到下一个。

标签: java


【解决方案1】:

您想使用扫描仪提供给您的众多 hasNext 方法版本之一。

查看对应的hasNext()javadoc:

如果此扫描器的输入中有另一个令牌,则返回 true。此方法在等待输入扫描时可能会阻塞。

next() 只是尝试从扫描仪中读取,如果没有任何内容(按下 ctrl-z 时会发生什么),那将失败!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-26
    • 1970-01-01
    • 2017-02-09
    • 1970-01-01
    • 2016-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多