有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将数字输入到公共浮点数组中

我需要得到两个用空格隔开的浮点数,这样我就可以在计算器中使用它们了。我有以下错误的问题。我想我必须先初始化数组,但不管我做什么,我都会出错。输入应如下所示:

输入两个由空格分隔的浮点数: 4.3.6.5

输入两个数字后,用户按Enter键。如果用户只输入了两个数字,我将实现一个不允许输入的功能(“您只输入了一个数字,请重试并输入两个:”然后它将再次提示用户输入两个数字

Exception in thread "main" java.lang.NullPointerException

以下是与输入数字相关的两个类:

课堂上的计算器:

    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?");
}

}

计算器输入类:

    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;
}
}

共 (1) 个答案

  1. # 1 楼答案

    您需要初始化阵列:

    ... float[] inputs = new float[2];
    

    这应该可以解决你的NullPointerException

    此外,for循环的限制也是错误的。它应该是从int c = 0c < 2,否则您将等待三个浮动(0、1和2),而不是两个