我不断收到这个奇怪的错误。当我尝试对用户输入的分数进行求和时,它会像彼此相邻一样对它们进行求和,而不是实际的求和。
我意识到问题是从string
到int
的转换,但是我无法理解如何解决它。
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();
}
}
答案 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