我需要用空格隔开两个花车,以便我可以在计算器中使用它们。我遇到以下错误。我想我必须首先初始化数组,但无论我做什么,我只是得到错误。输入应该是这样的:
输入两个以空格分隔的浮点数: 4.3 6.5
输入两个数字后,用户按Enter键。如果用户输入了除两个数字之外的其他任何内容,我将实现一个不允许输入的功能(“你只输入一个数字,请再试一次并输入两个:”然后它会再次提示用户输入两个数字。
Exception in thread "main" java.lang.NullPointerException
这两个与输入数字有关的类:
CalculatorMain类:
public class CalculatorMain {
public static void main(String[] args) {
int OP; float num1, num2;
float result;
System.out.println("Welcome, " + System.getProperty("user.name") + ", to the Calculator application.");
System.out.println("Begin by entering the number of the operator you would like to use:\n");
CalculatorOperator.printOptions();
OP = CalculatorInput.getOP();
CalculatorInput.getNums();
num1 = CalculatorInput.inputs[0];
num2 = CalculatorInput.inputs[1];
result = CalculatorOperator.switcher(OP, num1, num2);
System.out.println("The result is:\n" + result + "\nWould you like to use the calculator again?");
}
}
CalculatorInput类:
import java.util.Locale;
import java.util.Scanner;
public class CalculatorInput {
public static float[] inputs;
public static void getNums() {
Locale.setDefault(Locale.US);
Scanner in = new Scanner(System.in);
System.out.println("Enter two floats seperated by a space:\n");
while(in.hasNext()){
for(int c = 0; c <=2; c++){
inputs[c] = in.nextFloat();
}
}
in.close();
}
public static int getOP() {
int OP;
Scanner inOP = new Scanner(System.in);
OP = inOP.nextInt();
inOP.close();
return OP;
}
}
答案 0 :(得分:2)
您需要初始化数组:
... float[] inputs = new float[2];
这应解决你的NullPointerException。
此外,您的for循环有错误的限制。它应该是从int c = 0
到c < 2
,否则你将等待三个浮点数(0,1和2),而不是两个浮点数。