在c++中,当我们需要接收多个控制台输入(所有输入都在同一行中)时,我们使用以下命令:
int num1, num2, num3;
cin >> num1 >> num2 >> num3;
//Input
21 33 42[Enter]
//Output
21 33 42
在Java中做同样的事情,这是正确的方法吗?
Scanner scn = new Scanner(System.in);
int num1, num2, num3;
num1 = scn.nextInt();
num2 = scn.nextInt();
num3 = scn.nextInt();
您是对的,但是如果您必须在读取整数值之后使用. nextline()读取字符串,请小心,如果您在整数值之后点击"enter", nextInt()将仅消耗整数值并忽略回车,如果您试图立即读取字符串,则将由. nextline()消耗。在本例中,只需在。nextint()之后额外添加一个。nextline()。
如果您想读取未知数量的输入,请尝试以下操作:
Scanner scn = new Scanner(System.in);
List<Integer> list = new ArrayList<Integer>();
String s = "";
while (!(s = scn.next()).equals("stop")) {
try {
list.add(Integer.parseInt(s));
} catch (NumberFormatException e) {
System.err.println("Thats not a Number!!");
}
}