[英]Java calculator is crashing
我正在制作这个非常酷的计算器应用程序。 一切正常,除了一件事。 当用户按下无效等式(例如 1+ 或 5-)时,它会崩溃。 我的意思是我的崩溃是这样的:当它说,对不起,计算器已停止。 我尝试修复它,但没有用。
爪哇:
if (number1.getText().toString().contains("+")){
String[] retVal;
if (number1.getText().length() != 0) {
//num1 = Float.parseFloat(num1 + "+");
expr = number1.getText().toString();
retVal = expr.split("\\+");
if ((retVal[0].length() >= 2) || retVal[1].length() >= 2)
return;
num1 = Float.parseFloat(retVal[0]);
num2 = Float.parseFloat(retVal[1]);
resultnum = num1+num2;
result.setText(String.valueOf(resultnum));
}
else {
Toast.makeText(getApplicationContext(),"Please enter a valid math expression",Toast.LENGTH_SHORT).show();
return;
}
这是我添加以解决问题的行:(但是,不起作用)
if ((retVal[0].length() >= 2) || retVal[1].length() >= 2)
return;
我是 Java 编程的初学者。 我正在使用 Android Studio。
我猜你没有包含确切的错误,但如果你的输入是1+
那么
retVal = expr.split("\\+");
将返回一个字符串(不是两个),这意味着
retVal[1].length()
将导致异常,因为retVal[1]
不存在。
为避免此错误,您应该在调用split()
后检查retval
以查看它是否包含两个元素。 如果不是,则告诉您的用户他们的等式无效。 例如,
if (retVal.length != 2) {
// Tell the user ...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.