在上一篇的基础上进行了改进,可以实现多位数计算器的计算并且无Bug。
只在判断是数字的部分将 numberStack.push(ch);改为下面的,
//改进为可以计算多位数
keepNum+=ch;
if (index == str.length()-1){
numberStack.push(Integer.parseInt(keepNum));
}else {
//下一个是操作符时
if(isOper(str.charAt(index+1))){
numberStack.push(Integer.parseInt(keepNum));
keepNum="";
}
}
并在main()中定义String keepNum:
public static void main(String[] args){