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

Java 将数字输入到公共浮点数组中,java,console-application,Java,Console Application,我需要得到两个用空格隔开的浮点数,这样我就可以在计算器中使用它们了。我有以下错误的问题。我想我必须先初始化数组,但不管我做什么,我都会出错。输入应如下所示: 输入两个由空格分隔的浮点数: 4.3.6.5 输入两个数字后,用户按Enter键。我将实现一个不允许输入的功能,如果用户输入了除两个数字以外的任何数字,您只输入了一个数字,请重试并输入两个:然后它将再次提示用户输入两个数字 Exception in thread "main" java.lang.NullPointerException

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

输入两个由空格分隔的浮点数: 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;
}
}

您需要初始化阵列:

... float[] inputs = new float[2];
这将解决您的NullPointerException


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

在CalculatorInput类中,在哪里初始化浮点[]输入?比如设置数组的大小。即:输入=新浮动[大小]。此外,我认为您还不完全了解在不包含main方法的类中如何正确使用static。我认为您还需要将word operator更改为operand。如果您使用调试器逐步执行此操作,您很可能会立即看到错误。我已经这样做了,不再出现该错误,现在我得到了一些以前在我试图解决这个问题时发生过的事情。输入两个用空格分隔的浮点数:结果是:0.0您想再次使用计算器吗?我一输入我想使用的运算符,它就不会等我输入数字,它只是认为数字都是0?@Ashford,你最好把问题说得更具体些。在评论中发布一个新问题并没有多大帮助。我建议你多读点书,更好地理解你想做的事情。不知道我是如何发布一个新问题的。我的标题建议我需要帮助输入两个浮动,并且该评论是对原始问题的详细说明。我理解,但你最好只发布要求和一些初始代码,让人们帮助你。这样做的方式是发布一个通用标题,其中包含一些非常糟糕/不完整的代码。那不是帮助别人,而是帮助你。这就是为什么人们投票否决你的问题。@Ashford不要关闭扫描仪。它将关闭System.in。