1700474147
Expression left=null;
1700474148
1700474149
Expression right=null;
1700474150
1700474151
for(int i=0;i<charArray.length;i++){
1700474152
1700474153
switch(charArray[i]){
1700474154
1700474155
case’+’://加法
1700474156
1700474157
//加法结果放到栈中
1700474158
1700474159
left=stack.pop();
1700474160
1700474161
right=new VarExpression(String.valueOf(charArray[++i]));
1700474162
1700474163
stack.push(new AddExpression(left,right));
1700474164
1700474165
break;
1700474166
1700474167
case’-‘:
1700474168
1700474169
left=stack.pop();
1700474170
1700474171
right=new VarExpression(String.valueOf(charArray[++i]));
1700474172
1700474173
stack.push(new SubExpression(left,right));
1700474174
1700474175
break;
1700474176
1700474177
default://公式中的变量
1700474178
1700474179
stack.push(new VarExpression(String.valueOf(charArray[i])));
1700474180
1700474181
}
1700474182
1700474183
}
1700474184
1700474185
//把运算结果抛出来
1700474186
1700474187
this.expression=stack.pop();
1700474188
1700474189
}
1700474190
1700474191
//开始运算
1700474192
1700474193
public int run(HashMap<String,Integer>var){
1700474194
1700474195
return this.expression.interpreter(var);
1700474196
[
上一页 ]
[ :1.700474147e+09 ]
[
下一页 ]