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

时间:2013-10-06 12:05:06

标签: java

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

2 7 10 34 2 11

如果我想选择六个变量int a,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来执行相同的操作。命令行参数提供了一些缓解但我们无法使用它在运行时。

我想问一下,是不是有任何直接的单行方法来选择这些空格分隔的整数?

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

1 个答案:

答案 0 :(得分:0)

import java.util.Scanner; //in the beginning of your code

Scanner scan = new Scanner(System.in); //somewhere along you're code

这里有2种方法。 通常,您在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());