String index out of range: -1 这是越界了,应是str.indexOf("+")出错。String 的indexOf方法返回查找字符在字符串中的位置,但是没找到的话就会返回-1(详细看JDK API文档)。所以当找不到指定字符时救会出错了,字符串下标从0到str.length(),来个-1自然越界(substring()方法)。
最好在处理前做个判断
int index = str.indexOf("+");
if(index!=-1){
op2=Double.parseDouble((str.substring(index,str.length())));
}else
{
System.out.println("找不到指定字符!");
}
我认为是str.indexOf("+")得到的数字的长度可能小于str.length()的大小,所以会出现越界异常。
str.indexOf("+") 获取到的值为-1,这个地方出错了,检查下字符串的数据格式