在Java中尝试获取以空格分隔的整数
我试图输入由空格分隔的整数,然后试图检索它们。就这么简单,但我做不到 所以我要做的是,首先问一个用户想要输入多少个数字,他/她会输入这个数字,然后输入中间有空格的数字。 在用户输入了用空格分隔的数字后,我只想把它们打印回来 拟议产出 这就是我所做的:-在Java中尝试获取以空格分隔的整数,java,Java,我试图输入由空格分隔的整数,然后试图检索它们。就这么简单,但我做不到 所以我要做的是,首先问一个用户想要输入多少个数字,他/她会输入这个数字,然后输入中间有空格的数字。 在用户输入了用空格分隔的数字后,我只想把它们打印回来 拟议产出 这就是我所做的:- 问题是您试图使用以下方法捕获所有五个逗号分隔的整数: actualnumbers=myinput2.nextInt()实际上只读取一个int,在您的例子中,它是1 您需要读取循环或字符串中的整数,可以在空格上拆分,然后打印数字。你们不需要两台扫描
问题是您试图使用以下方法捕获所有五个逗号分隔的整数:
actualnumbers=myinput2.nextInt()
实际上只读取一个int
,在您的例子中,它是1
您需要读取循环或字符串中的整数,可以在空格上拆分,然后打印数字。你们不需要两台扫描仪,就像我所说的那个样。似乎您希望在循环中执行此操作,然后使用以下方法:
public static void main(String[] args) {
int amountofnumbers;
int[] actualnumbers;
Scanner myinput = new Scanner (System.in);
System.out.println ("How many numbers do you want to enter?");
amountofnumbers = myinput.nextInt();
actualnumbers = new int[amountofnumbers];
for(int index=0; index<amountofnumbers; index++)
{
System.out.println ("Please enter");
actualnumbers[index] = myinput.nextInt();
}
myinput.close();
System.out.println("You entered:");
for(int enteredNumber : actualnumbers){
System.out.println (enteredNumber) ;
}
}
publicstaticvoidmain(字符串[]args){
整数;
int[]实际数字;
扫描仪myinput=新扫描仪(System.in);
System.out.println(“要输入多少个数字?”);
amountofnumbers=myinput.nextInt();
实际数=新整数[数量];
对于(int index=0;index,您可以将数字数组的输入作为字符串,并使用split()函数将其除以。然后,将其打印或插入int数组
public static void main( String[] argv ) throws Exception{
int amountofnumbers;
Scanner myinput = new Scanner(System.in);
Scanner myinput2 = new Scanner(System.in);
System.out.println("How many numbers do you want to enter?");
amountofnumbers = myinput.nextInt();
try {
int[] numbers = new int[amountofnumbers];
System.out.println("Please enter " + amountofnumbers + " integer(s) seperated by a space");
String actualnumbers = myinput2.nextLine();
String[] amounts = actualnumbers.split(" ", amountofnumbers);
if (amounts.length != amountofnumbers) {
System.err.println("No of input should be: " + amountofnumbers);
return;
}
for (int i=0; i<amounts.length; i++) {
numbers[i] = Integer.parseInt(amounts[i]);
}
System.out.println("You entered:- ");
for (int i = 0; i < numbers.length ; i++) {
System.out.println(numbers[i]);
}
}
catch(NumberFormatException e) {
System.err.println("Only integer can be input");
}
catch(ArrayIndexOutOfBoundsException e) {
System.err.println("No of input should be: " + amountofnumbers);
}
myinput.close();
myinput2.close();
}
你能展示一下当你运行它时会发生什么吗?String#split
?甚至可能是一个新的扫描仪
环绕原始输入,并使用扫描仪#hasNextInt
和扫描仪#nextInt
…?你应该把实际数字=myinput2.nextInt()
进入循环,因为您正在读取多个数字。存储到数组中,稍后再打印出来。@Vinetramachandran是的,但是OP需要一次读取一行文本…您只读取一次输入,然后打印5次值。您可能需要一个数组和一个更好的for循环正如前面提到的,最好是r移除第二台扫描仪。最后也关闭第一台。谢谢,关闭扫描仪只是我一时想不起来。我想可能是OP需要两台扫描仪,原因不明。我已经更新了代码。
1
1
1
1
1
public static void main(String[] args) {
int amountofnumbers;
int[] actualnumbers;
Scanner myinput = new Scanner (System.in);
System.out.println ("How many numbers do you want to enter?");
amountofnumbers = myinput.nextInt();
actualnumbers = new int[amountofnumbers];
for(int index=0; index<amountofnumbers; index++)
{
System.out.println ("Please enter");
actualnumbers[index] = myinput.nextInt();
}
myinput.close();
System.out.println("You entered:");
for(int enteredNumber : actualnumbers){
System.out.println (enteredNumber) ;
}
}
public static void main( String[] argv ) throws Exception{
int amountofnumbers;
Scanner myinput = new Scanner(System.in);
Scanner myinput2 = new Scanner(System.in);
System.out.println("How many numbers do you want to enter?");
amountofnumbers = myinput.nextInt();
try {
int[] numbers = new int[amountofnumbers];
System.out.println("Please enter " + amountofnumbers + " integer(s) seperated by a space");
String actualnumbers = myinput2.nextLine();
String[] amounts = actualnumbers.split(" ", amountofnumbers);
if (amounts.length != amountofnumbers) {
System.err.println("No of input should be: " + amountofnumbers);
return;
}
for (int i=0; i<amounts.length; i++) {
numbers[i] = Integer.parseInt(amounts[i]);
}
System.out.println("You entered:- ");
for (int i = 0; i < numbers.length ; i++) {
System.out.println(numbers[i]);
}
}
catch(NumberFormatException e) {
System.err.println("Only integer can be input");
}
catch(ArrayIndexOutOfBoundsException e) {
System.err.println("No of input should be: " + amountofnumbers);
}
myinput.close();
myinput2.close();
}
How many numbers do you want to enter?
5
Please enter 5 integer(s) seperated by a space
1 2 3 4 5
You entered:-
1
2
3
4
5