【发布时间】:2014-12-31 19:35:24
【问题描述】:
我很难弄清楚如何让我的后缀来评估负数。
我的后缀中缀似乎适用于负数,例如我的程序中的示例.. 中缀:(-3)+5*3 后缀:3-53*+
这是我的评估方法,我知道的代码越少越好,如果您想查看我的任何其他代码,请告诉我。我尝试了很多事情,但都没有运气,任何建议或建议将不胜感激!
public int evaluate(String evalute){
int number1;
int number2;
int result = 0;
int finalResult = 0;
Stack<Integer> d = new Stack<Integer>();
for(int i = 0; i < evalute.length(); i++){
char curChar = evalute.charAt(i);
if(curChar >= 48 && curChar <= 57){
int store = curChar;
store -=48;
d.push(store);
}
else if(curChar == '+'){
number1 = d.pop();
number2 = d.pop();
result = number1 + number2;
d.push(result);
}
else if(curChar == '-'){
number1 = d.pop();
number2 = d.pop();
result = number2 - number1;
d.push(result);
}
else if(curChar =='*'){
number1 = d.pop();
number2 = d.pop();
System.out.println(result = number1 * number2);
d.push(result);
}
else if(curChar =='/'){
number1 = d.pop();
number2 = d.pop();
result = number2 / number1;
d.push(result);
}
}
finalResult = d.pop();
return finalResult;
}
【问题讨论】:
标签: java stack postfix-notation