不带括号的简单四则运算
摘要
- 从键盘输入一列等式如(2+3*9/2-4=),遍历整个字符串,然后获得单个字符。
- 创建两个栈 的类,分别用来存放数字和运算符。类里边包含压栈,出栈,获得索引和获得栈顶内容四个方法。
- 当获得运算符的时候,根据优先级比较进行计算或者将该运算符压栈。
- 当判断最后一个符号为=号的时候,先进行一次计算,即从数字栈中依次从栈顶取出两个数,从符号栈中取出一个运算符进行计算,计算完成后进行一符号栈的判定,如果符号栈中为空,则刚计算的结果即最后结果,若不是,则再进行一次计算即可。
代码块为:创建两个栈的类
数字栈
package src;
public class MyStack {
private int array[]=new int [20];
private int index=-1;
public void push(int i){
index++;
array[index]=i;
}
public int getTop(){
return array[index];
}
public int pop(){
int j=array[index];
index--;
return j;
}
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
}