输入:
1 10
如何在两个输入之间提供空格,以便编译器可以以不同方式获取两个输入。
我尝试使用
st1=in.nextInt();
in.next();
st2=in.nextInt();
答案 0 :(得分:2)
只需删除in.next();
电话即可。 nextInt()
已经"忽略"空格。并且无需使用split()
创建数组并手动转换数字"#34;。只需让扫描仪像您一样使用nextInt()
处理此问题:
Scanner s = new Scanner("1 10 9 5");
while(s.hasNextInt()) {
int number = s.nextInt();
System.out.println(number);
}
关于这一点的好处是,如果用户没有提供数字(例如NumberFormatException
),您就不会在其他答案中获得a b c
。
答案 1 :(得分:1)
以下行将为您提供一个String
数组,其中包含两个数字作为字符串:
String[] numbersFromUser = in.nextLine().split(" ");
假设用户正确格式化输入。
这当然也适用于大于2的多个参数。
然后,您可以继续将numbersFromUser[0]
和numbersFromUser[1]
转换为您需要的int
值:
int st1 = Integer.valueOf(numbersFromUser[0]).intValue();
int st2 = Integer.valueOf(numbersFromUser[1]).intValue();
答案 2 :(得分:0)
使用:
data = line.split("\s");
first = data[0];
second = data[1];
third = data[2];
System.out.println(first)
System.out.println(second);
System.out.println(third);
输入:
1 5 6
输出:
1
5
6