我试图从控制台读取多个变量,扫描仪只在一行中(用空格分隔)。
如果我输入:
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
有人可以帮助我吗?
答案 0 :(得分:2)
一种方法是使用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!
}
答案 1 :(得分:0)
要在一行中输入所有3个值,您可以使用。 . readInt()
三次而不是.readNextLine()
。通过这种方式,您可以像1 2 3
一样输入输入,然后在键盘上按Enter
(默认情况下用于结束输入)后,您就会得到所要求的内容。
如果您打算在一行而不是多行一行中获得输出,则应该使用其他版本的方法打印到控制台:
System.out.print(height + " " + weight + " " + depth)
System.out.println()
在参数System.out.print()
之后打印下一行字符。
答案 2 :(得分:0)
根据您的评论,您可以简单地将数字读取为整数,如:
Scanner br =new Scanner(System.in);
int a=br.nextInt();
int b=br.nextInt();
int c=br.nextInt();
输入为1 2 3。
答案 3 :(得分:0)
用于以空格分隔的单行输入。您可以使用Java中的Scanner和BufferReader做到这一点。 1.扫描器类
Scanner sc = new Scanner(System.in);
int[] integers;
String input = sc.nextLine();
String[] strs= input().split(" ");
for(int i=0;i<strs.length;i++){
integers[i]=Integer.parseInt(strs[i]);
}
2。 BufferReader类
BufferReader br = new BufferReader(new InputStreamReader(System.in));
int[] integers;
String input = br.readLine();
String[] strs= input().trim().split("\\s+");
for(int i=0;i<strs.length;i++){
integers[i]=Integer.parseInt(strs[i]);
}