在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