如何制作它以便我可以提示用户在一行中用空格分隔输入多个整数。如果第一个整数为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];
}
}
答案 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);