我有以下代码:
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()
。