在一行中用扫描仪读取多个变量
我想用扫描仪只读一行(用空格分隔)从控制台读取多个变量。在一行中用扫描仪读取多个变量
如果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