Java:一次多线输入



我在编程难题中的输入有点问题。我想将输入转换为图,输入表示为一个未知数量的线,每个线都有2个由空间隔开的整数(这代表边缘)。我已经搜索过,但没有真正找到答案,我知道如何从多行中获取输入,但是在解析所有输入后我该如何停止?

这是我的意思:

Scanner stdin = new Scanner(System.in);
while (stdin.hasNext()) {
        node1 = stdin.nextInt();
        node2 = stdin.nextInt();
        //save edge from node1 to node2
}
//do xyz

这里的问题是XYZ从未达到,并且一直在等待输入。示例输入是:

0 1
0 3
2 1

而不是在有来自扫描仪的数据时循环,为什么不循环循环,直到用户信号表明他们已经添加了使用特殊字符序列的输入,例如空行?

Scanner stdin = new Scanner(System.in);
String inputLine = null;
do {
    try {
        inputLine = stdin.nextLine();
        // process the inputLine here!
    } catch (Exception e) {
        break;
    }
} while (inputLine != null && !("".equals(inputLine.trim())));

我没有意识到,在测试代码时,必须手动在Windows上手动发送EOF符号(ubuntu/ctrl z上的ctrl d),所以这就是为什么我发布问题。

实际上从文件或某些内容读取输入时,hasNext()到达结束后会返回false,因此这只是一个测试问题。

因此,只需使用快捷方式在控制台上发送EOF登录,它将使hasnext()返回false。

相关内容

  • 没有找到相关文章

最新更新