2016-09-30 51 views
0

我该如何做到这一点,以便我可以提示用户在由空格分隔的一行上输入多个整数。如果第一个整数是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]; 

    } 

} 
+0

你做了什么研究吗? –

+0

你可以为你的Q找到答案,如果你做了快速搜索,但在这里检查:http://stackoverflow.com/questions/23506429/java-reading-multiple-ints-from-a-single-line –

回答

0

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

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

然后你可以用charAt来替换数组。

或者,扫描仪已经允许用户在同一行上输入尽可能多的整数。 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); 
+0

你没有不回答问题 –

+0

提交的代码适用于他们需要做的事情。更好的答案是解释不同的扫描仪操作? – Brion

相关问题