繁体   English   中英

Java 计算器崩溃

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM