在Java中从控制台拾取空格分隔的整数

在Java中从控制台拾取空格分隔的整数,java,Java,假设我有一个由空格分隔的六个整数的输入 2 7 10 34 2 11 如果我想选择六个变量inta,b,c,d,e,f 在C中,我可以直接像下面这样做 scanf("%d %d %d %d %d %d",&a,&b,&c,&d,&e,&f); 在Java中,我知道的方法对我来说真的很烦人 BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); 然后我们可以

假设我有一个由空格分隔的六个整数的输入

2 7 10 34 2 11
如果我想选择六个变量
inta,b,c,d,e,f

C
中,我可以直接像下面这样做

scanf("%d %d %d %d %d %d",&a,&b,&c,&d,&e,&f);
在Java中,我知道的方法对我来说真的很烦人

BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
然后我们可以使用
String s=br.readLine()
然后
s.split(“”
来选择单个值。另一种选择是使用
scanner
,其作用相同。命令行参数提供了一些缓解措施,但我们不能在运行时使用它

我想问的是,是否有任何直接的单线方法来选取这些空格分隔的整数

(有一个有标题的问题,但它是基本的和离题的,所以我提出了这个问题) (那里

这里有两种方法。 通常,您在System.in中输入的所有内容都会被保存,像.nextInt()或next()这样的方法将采用第一个用空格分隔的值,每次使用该方法时,您可以输入更多的值,但它会将其放在您输入的第一个值之后:

例: 您使用scan.nextInt()并输入:“1 2 3”,它需要1,但您仍然有“2 3” 再次使用scan.nextInt()将允许您输入更多值,如果您输入的是“4 5 6”,则.nextInt()将取2,但您现在将得到“3 4 5 6”

我喜欢使用的方法如下:

String str = scan.nextLine();
int[] array = new int[6]
int count = 0;
Scanner strScan = new Scanner(str);
while(strScan.hasNext())
{
    array[count]=Integer.parseInt(str.next());
    count++;
}
但您也可以使用:

String str = scan.nextLine();
Scanner strScan = new Scanner(str);
a = Integer.parseInt(scan.next());
b = Integer.parseInt(scan.next());
...
f = Integer.parseInt(scan.next());

为什么不把它们放在一个集合中呢?更简单、更一般。@DaveNewton:你能为这个问题的完整性提供一个例子或代码片段吗?你展示的方法是最好的选择。你可以将
String[]s=br.readLine().split(“”)链接起来如果你真的讨厌行,那就到此为止。这些都是很好的解决方案,而且代码比使用reader少,
String str = scan.nextLine();
Scanner strScan = new Scanner(str);
a = Integer.parseInt(scan.next());
b = Integer.parseInt(scan.next());
...
f = Integer.parseInt(scan.next());