我有以下代码:

    kb.useDelimiter("\\b*[\\s]*");
    int answer = 0;
    String num1, num2;
    char operator;

    System.out.print("Enter calculation: "); // user will input **1+6**

    num1 = kb.nextInt();
    operator = kb.next().charAt(0);
    num1 = kb.nextInt();

    switch(operator)
    {
        case '+':
            if (num1.hasNextInt)
            {
                 int aa= Integer.parseInt(num1);
                 int bb= Integer.parseInt(num2);
                answer = CalculatorMethods.add(aa,bb);
            }
            else
            {
                 //converts the String into Double
            }
            break;
    }


我要在这段代码中尝试做的是,用户可以像1 + 1这样直接在程序中输入。我所做的是我将每个人分开,所以它将有1,+和1 ...
如果用户输入一个整数...。然后我将其转换为整数,然后调用该方法....否则它将字符串转换为一个双精度型,然后调用该方法。

所以,当我编译上面的代码时,我得到的只是很多错误,例如不兼容的类型,找不到符号hasNextInt ....我的代码有什么问题?

任何帮助将不胜感激。

最佳答案

您的num1变量被声明为字符串,但是您试图为其分配一个整数(我假设kb是Scanner的一个实例)。然后,您尝试调用不是字符串方法的num1.hasNextInt()-我认为您是说kb.hasNextInt()

09-05 02:04
查看更多