为了账号安全,请及时绑定邮箱和手机立即绑定

大神求救啊!! 为什么一点击“等于”就报错

 FATAL EXCEPTION: main java.lang.StringIndexOutOfBoundsException: length=5; regionStart=2; regionLength=-3 at cn.lll.MainActivity.getResult(MainActivity.java:162) at cn.ll.MainActivity.onClick(MainActivity.java:140)

我的代码如下:

case R.id.btn_equal:
            getResult();
            break;
        }
    }
//获取计算结果,调用getresult方法
    private void getResult() {
        String exp=et_showview.getText().toString();
        //空或者没有东西,直接返回
        if (exp==null||exp.equals("") ) {
            return;
        }
        if (!exp.contains(" ")) {
            return;
        }
        if (clear_flag) {
            clear_flag=false;
            return;        
        }
        clear_flag=true;
        double r=0;
        //运算符前面的字符串
        String s1=exp.substring(0,exp.indexOf(" "));
        String op=exp.substring(exp.indexOf(" ")+1,exp.indexOf(" "+2));
        String s2=exp.substring(exp.indexOf(" "+3));
        if (!s1.equals("")&&!s2.equals("")) {
            double arg1=Double.parseDouble(s1);
            double arg2=Double.parseDouble(s2);
            if(op.equals("+")){
                    r= arg1+arg2;
               }else if(op.equals("-")){
                   r= arg1-arg2;
               }else if(op.equals("×")){
                    r= arg1*arg2;
               }else if(op.equals("÷")){  
                   if (arg2==0) {
                    r=0;
                }else {
                    r=arg1/arg2;
                }
                et_showview.setText(String.valueOf(r));

正在回答

2 回答

String op=exp.substring(exp.indexOf(" ")+1,exp.indexOf(" "+2));
String s2=exp.substring(exp.indexOf(" "+3));

这两行应该是

String op=exp.substring(exp.indexOf(" ")+1,exp.indexOf(" ")+2);
String s2=exp.substring(exp.indexOf(" ")+3);

0 回复 有任何疑惑可以回复我~
#1

qq_幽幽千山_0 提问者

万分感谢!我明白了
2017-10-26 回复 有任何疑惑可以回复我~

牛皮,怪不得老是找不到问题所在

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android攻城狮的第一门课(入门篇)
  • 参与学习       312585    人
  • 解答问题       4633    个

想快速掌握Android应用开发基础,选择学习这门课程就对了。

进入课程

大神求救啊!! 为什么一点击“等于”就报错

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信