大神求救啊!! 为什么一点击“等于”就报错
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));

 
                             
                            