这是我的代码的开头,我希望用户能够在同一行输入数字,然后分别转移到变量x
,y
和z
。相反,我现在按Enter键后逐行读取。
public static void main (String[]args)
{
Scanner userInput = new Scanner(System.in);
int x = 0;
int y = 1;
int z = 2;
System.out.println("Enter the sides of the triangle: ");
x = userInput.nextInt();
y = userInput.nextInt();
z = userInput.nextInt();
Triangle isos = new Triangle(x,y,z);
Triangle equal = new Triangle(x,y,z);
Triangle scalene = new Triangle(x,y,z);
}
答案 0 :(得分:2)
来自Java Scanner doc:
扫描仪使用的默认空白分隔符由Character.isWhitespace识别。
另外
public int nextInt()
将输入的下一个标记扫描为int。
调用nextInt()形式的此方法的行为与调用nextInt(radix)的方式完全相同,其中radix是此扫描程序的默认基数。
public int nextInt(int radix)
将输入的下一个标记扫描为int。如果下一个标记无法转换为有效的int值,则此方法将抛出InputMismatchException,如下所述。如果翻译成功,扫描仪将超过匹配的输入。
如果下一个标记与上面定义的整数正则表达式匹配,则将标记转换为int值,就像删除所有特定于语言环境的前缀,组分隔符和特定于语言环境的后缀一样,然后通过删除非ASCII数字到ASCII数字Character.digit,如果存在特定于区域设置的负前缀和后缀,则在前面加一个负号( - ),并将结果字符串传递给具有指定基数的Integer.parseInt。
所以你的问题已经解决了,只需使用正确的输入:
3 4 5<press Enter>
答案 1 :(得分:1)
一种方法是使用Scanner#useDelimeter
:
Scanner scanner = new Scanner(System.in);
scanner.useDelimeter(" "); //Or "\\s+" for more than space
for(int i = 0; i < SOME_LENGTH; i++)
myNumbers[i] = scanner.nextInt();
}
修改强>
观看@ ppeterka66(+1)回答后,请参阅Scanner
:
扫描程序使用的默认空白分隔符已被识别 Character.isWhitespace。
这意味着您可以简单地编写序列,按空格分隔,然后只需按“Enter”。
答案 2 :(得分:1)
在String var中输入
之间的空格然后
String[] tempArr = inputString.split(" ");
ArrayList<Integer> intArr = new ArrayList<Integer>():
for(String s:tempArr)
{
intArr.add(Integer.parseInt(s));
}
现在可以根据需要使用整数
答案 3 :(得分:0)
Scanner userInput = new Scanner(System.in);
int x,y,z;
System.out.print("Enter x: ");
x = userInput.nextInt();
System.out.print("Enter y: ");
y = userInput.nextInt();
System.out.print("Enter z: ");
z = userInput.nextInt();
答案 4 :(得分:0)
您可以使用分隔符输入输入数据,使输入为整个字符串,看起来像3;7;11
您需要告知用户特定的输入格式,并最终正确解析输入,如:
System.out.println("Enter the sides of the triangle in format x;y;z ");
String[]inputData = userInput.nextString().split(";");
答案 5 :(得分:0)
你差不多完成了。您可能需要对用户有一些清晰的可见性。
Scanner userInput = new Scanner(System.in);
int x;
int y;
int z;
System.out.println("Enter the sides of the triangle");
System.out.println("Enter X");
x = userInput.nextInt();
System.out.println("Enter Y");
y = userInput.nextInt();
System.out.println("Enter Z");
z = userInput.nextInt();
System.out.println("The inputs are [x,y,z]=["+x+","+y+","+z+"]");