我正在处理一个 JAVA 作业,应该处理多行输入。指令读取“输入是从标准输入读取的”。
示例输入示例如下:
one 1
two 2
three 3
我不明白上面的示例输入“从标准输入读取”是什么意思。
这是我编写的一个测试程序,可以消除我的困惑:
import java.io.*;
import java.util.Scanner;
class Test
{
public static void main(String[] args)
{
Scanner stdin = new Scanner(System.in);
while(stdin.hasNextLine())
{
String line = stdin.nextLine();
String[] tokens = line.split(" ");
System.out.println(Integer.parseInt(tokens[1]));
}
}
当我在控制台中运行这个程序时,它会等待我的输入,每次我输入一行时,它都会像我期望的那样回显它。所以我想也许上面的示例输入可以通过以这种方式输入 3 行中的每一行来实现。但是,似乎没有办法结束这个过程。输入3行后,如何终止输入?我尝试只按两次 enter,但这似乎读作仅包含换行符的行,这会导致错误,因为该行不符合预期的 2 令牌格式。
控制台交互如下所示:
javac Test.java
java Test
one 1
1
two 2
2
three 3
3
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at Test.main(Test.java:13)
我将不胜感激任何帮助指出我的理解差距。