如何才能提示用户在一行上输入多个由空格分隔的整数。如果第一个整数是 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/