Java奇怪地对数字求和

时间:2019-08-31 15:25:32

标签: java

我不断收到这个奇怪的错误。当我尝试对用户输入的分数进行求和时,它会像彼此相邻一样对它们进行求和,而不是实际的求和。

我意识到问题是从stringint的转换,但是我无法理解如何解决它。

import java.util.Scanner;

public class sumCalculator {


    public static void main (String args[]) {

        Scanner reader = new Scanner (System.in);
        System.out.println("Sum calculator v1.0");
        System.out.println("Enter your first number");
        String num1 = reader.nextLine();
        System.out.println("Enter your second number");
        String num2 = reader.nextLine();
        System.out.println("Enter your third number");
        String num3 = reader.nextLine();
        System.out.println("Enter your fourth number");
        String num4 = reader.nextLine();
        System.out.println("Enter your fifth number");
        String num5 = reader.nextLine();
        System.out.println("Enter you sixth (and last) number");
        String num6 = reader.nextLine();

        int numSumAddUp = Integer.parseInt (num1 + num2 + num3 + num4 
                + num5 + num6);     
        System.out.println("The average of yours grades is" + 
                numSumAddUp / 6);

        reader.close();

    }
}

5 个答案:

答案 0 :(得分:4)

好像您的问题在这里:

int numSumAddUp = Integer.parseInt (num1 + num2 + num3 + num4 
        + num5 + num6);

尝试单独解析它们

int num1parsed = Integer.parseInt(num1);
int num2parsed = Integer.parseInt(num2);
int num3parsed = Integer.parseInt(num3);
int num4parsed = Integer.parseInt(num4);
int num5parsed = Integer.parseInt(num5);
int num6parsed = Integer.parseInt(num6);

然后才尝试对它们求和:

int numSumAddUp = num1parsed + num2parsed + num3parsed + num4parsed + num5parsed + num6parsed;

答案 1 :(得分:0)

使用reader.nextInt读取每个数字。您将能够添加它们而不必从字符串转换。

答案 2 :(得分:0)

您还可以只使用Scanner的nextInt()方法来隐式进行解析。

int num1 = reader.nextInt();
int num2 = reader.nextInt();
System.out.println(num1 + num2);

答案 3 :(得分:0)

保持简单:

        Scanner reader = new Scanner (System.in);
        System.out.println("Sum calculator v1.0");
        System.out.println("Enter your first number");
        int num1 = reader.nextInt();
        System.out.println("Enter your second number");
        int num2 = reader.nextInt();
        System.out.println("Enter your third number");
        int num3 = reader.nextInt();
        System.out.println("Enter your fourth number");
        int num4 = reader.nextInt();
        System.out.println("Enter your fifth number");
        int num5 = reader.nextInt();
        System.out.println("Enter you sixth (and last) number");
        int num6 = reader.nextInt();

        int numSumAddUp = num1 + num2 + num3 + num4 + num5 + num6;
        System.out.println(String.format("The average of yours grades is %d", numSumAddUp / 6));

        reader.close();

答案 4 :(得分:0)

我看到您已经有了答案,但是我将提出另一种解析所有内容并用一小段代码求和的方法:

MultiOutputRegressor