2

我如何从用户那里读取单个“行”输入,按空格分隔值并将它们分配给某个变量?对我来说似乎很困惑。

例如,

Enter 3 digits = 3 4 5

Total = 12

我输入的输入,一旦有空格,只有当我输入“3 4”时才会打印第一个值

我知道我不应该使用 nextInt 扫描仪,但我想不出办法

    int a;      
    Scanner scan = new Scanner(System.in);

    System.out.println("Enter 3 digits:");
    a = scan.nextInt();
    System.out.println(a);
4

4 回答 4

2

通过在 for 循环中求和:

Scanner scan = new Scanner(System.in);
System.out.println("Enter 3 digits:");

int sum=0;
for(int i=0;i<3;i++){
    sum = sum + scan.nextInt();
}
System.out.println(sum);
于 2013-10-04T20:10:54.640 回答
1

最好有一个变量数组,并一次将整数读入数组,如下所示:

int[] a = new int[3];

Scanner scan = new Scanner(System.in);

System.out.print("Enter 3 digits: ");
for(int i = 0 ; i < a.length ; i++) //loop 3 times
{
    a[i] = scan.nextInt(); //get int from input
    System.out.println(a[i]);
}
scan.nextLine(); //consume the \n
于 2013-10-04T20:09:49.423 回答
1

你只需再打nextInt()2 次。

int a = scan.nextInt();
int b = scan.nextInt();
int c = scan.nextInt();
于 2013-10-04T20:11:33.080 回答
1

如果您需要一次读取所有整数,您可以使用此代码。如果可以一一阅读,请参阅其他答案。对于此代码,您也可以创建一个循环并使用数组。

    String a;      
    Scanner scan = new Scanner(System.in);

    System.out.println("Enter 3 digits:");
    a = scan.nextLine();
    Scanner stscan = new Scanner(a);
    System.out.println(a);
    int number1 = stscan.nextInt();
    int number2 = stscan.nextInt();
    int number3 = stscan.nextInt();
    System.out.println(number1+number2+number3);
于 2013-10-04T20:15:53.223 回答