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