在一行中用扫描仪读取多个变量

我想用扫描仪只读一行(用空格分隔)从控制台读取多个变量。在一行中用扫描仪读取多个变量

如果I型:

int hight = Integer.parseInt(reader.nextLine()); 

int width = Integer.parseInt(reader.nextLine());

int depth = Integer.parseInt(reader.nextLine());

然后显示我的数字(例如1,2,3)是这样的:

1 

2

3

,但我希望它显示我的号码一样, :1 2 3

有人能帮助我吗?要做到这一点

回答:

一种方法是使用nextInt,而不是nextLine

int hight = reader.nextInt(); 

int width = reader.nextInt();

int depth = reader.nextInt();

然后你输入可以是这样的:

1 2 3 

请注意,你必须按之前输入的所有三个号码ENTER,否则您的输入看起来就像这样再次:

1 

2

3

另一种方式做,这是使用正则表达式来指定您希望您的输入是在正确的格式,呼吁nextLine和匹配用户输入的正则表达式模式的行:

Matcher matcher = Pattern.compile("(\\d+)\\s+(\\d+)\\s+(\\d+)").matcher(reader.nextLine()); 

if (matcher.matches()) {

int height = Integer.parseInt(matcher.group(1));

int width = Integer.parseInt(matcher.group(2));

int depth = Integer.parseInt(matcher.group(3));

} else {

// input was invalid!

}

回答:

要在一行中输入所有3个值,您可以使用。 三次而不是使用.readNextLine()。这样,你可以把你的输入像这样1 2 3,并在键盘上按下Enter(这是默认用于结束输入),你会得到你所要求的。

如果你的目的是为了得到一个行,而不是多一个输出,你应该使用方法印刷的其他版本到控制台:

System.out.print(height + " " + weight + " " + depth) 

System.out.println()打印其参数的下一行字,System.out.print()没有。

回答:

根据你的评论,你可以简单地读取数字像整数:

Scanner br =new Scanner(System.in); 

int a=br.nextInt();

int b=br.nextInt();

int c=br.nextInt();

给输入为1 2 3

以上是 在一行中用扫描仪读取多个变量 的全部内容, 来源链接: utcz.com/qa/260175.html

回到顶部