【问题标题】:How can I make an input read out multiple integers on a single line?如何使输入在一行上读出多个整数?
【发布时间】:2016-09-30 17:29:40
【问题描述】:

我怎样才能做到这一点,以便我可以提示用户在一行上输入多个以空格分隔的整数。如果第一个整数是 0 或小于 0,当输入所有整数并且用户按下回车键时,它会打印出“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];

    }

}

【问题讨论】:

标签: java integer


【解决方案1】:

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

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

【讨论】:

  • 你没有回答问题
  • 提供的代码可以满足他们的需要。更好的答案是解释不同的 Scanner 操作吗?
猜你喜欢
  • 2015-05-03
  • 1970-01-01
  • 1970-01-01
  • 2014-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-02
  • 1970-01-01
相关资源
最近更新 更多