java - 如何使输入在一行上读出多个整数?

标签 java integer

如何才能提示用户在一行上输入多个由空格分隔的整数。如果第一个整数是 0 或小于 0,则当输入所有整数并且用户按 Enter 时,它将打印出“Bad Input”。另外,我怎样才能做到,当用户在行尾输入负数时,它将停止输入数字并将所有数字相乘。

这是我到目前为止所拥有的,但我不确定我做得是否正确。

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];

    }

}

最佳答案

您已经拥有它,以便用户可以输入值,直到按回车键。现在您可以使用拆分操作将字符串分解为值数组。

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);

关于java - 如何使输入在一行上读出多个整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39796954/

相关文章:

java - 解压缩的视频文件在 Java 中不起作用

java - 如何查找 url 是 utf-8 还是 utf-16

Java RegEx - 对于不包含 "."的整数

algorithm - 两对和相同的数字

java - 将文件复制到HDFS时,如何控制该文件驻留在哪些节点上?

java - 如何制作卡通风格的自定义对话框

java - 从树中获取随机节点

c++ - 32 位处理器如何支持 64 位整数?

math - 以数学方式将有符号整数转换为无符号整数

c++ - 对数组中的整数进行排序。但它不适用于某些情况