如何让输入在一行中读出多个整数?

时间:2016-09-30 17:29:40

标签: java integer

如何制作它以便我可以提示用户在一行中用空格分隔输入多个整数。如果第一个整数为0或小于0,当输入所有整数并且用户按下回车键时,它将打印出“错误输入”。另外我怎样才能这样做,当用户在行的末尾输入一个负数时,它将停止输入数字并将所有数字相乘。

这是我到目前为止所做的,但我不确定我这样做是对的。

import java.util.Scanner;

public class tempprime {

    static Scanner input = new Scanner(System.in);
    public static void main(String[] args) {

        int count = 1;

        String inputnumbers;
        System.out.print("Enter integers: ");
        inputnumbers = input.nextLine();
        for (int i = 0; i < inputnumbers.length(); i++){
            if (inputnumbers.charAt(i) == ' ')
                count++;

        }
        int[] numbers = new int[count];

    }

}

1 个答案:

答案 0 :(得分:0)

您已经拥有它,因此用户可以输入值,直到输入为止。现在你可以做的是使用拆分操作将字符串分解为一个值数组。

String[] values = inputnumbers.split('\s'); 

然后你可以用charAt替换对数组的访问权。

或者,Scanner已允许用户在同一行输入所需数量的整数。 nextLine()查找新行的第一次出现,但是你可以使用input.nextInt(),多次获取停留在空格中的下一个int,并一次一个地读取它们。您还可以使用扫描仪hasNext方法检查是否还有剩余值。

https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html

您可以在下面看到读取多个整数的示例。用户可以一次输入一个,也可以一次输入3个,并且仍然可以相同。

    Scanner in = new Scanner(System.in);

    System.out.print("Enter 3 ints:");
    int a,b,c;
    a = in.nextInt();
    b = in.nextInt();
    c = in.nextInt();
    System.out.printf("A: %d B: %d C: %d", a, b ,c);