1 Star 0 Fork 0

CS-IMIS-23/20172306

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
PostfixEvaluator.java 1.57 KB
一键复制 编辑 原始数据 按行查看 历史
package wek1;
import java.util.Scanner;
import java.util.Stack;
public class PostfixEvaluator {
private final static char ADD = '+';
private final static char SUBTRACT='-';
private final static char MULTIPLY='*';
private final static char DIVIDE='/';
private Stack<Integer> stack ;
public PostfixEvaluator(){
stack=new Stack<Integer>() ;
}
public int evaluate(String expr){
int op1,op2,result = 0;
String token;
Scanner parser = new Scanner(expr);
while (parser.hasNext() ) {
token = parser.next();
if (isOperator(token)) {
op2 = (stack.pop()).intValue();
op1 = (stack.pop()).intValue();
result = evaluateSingleOperator(token.charAt(0), op1, op2);
stack.push(new Integer(result));
} else
stack.push(new Integer(Integer.parseInt(token)));
}
return result;
}
private boolean isOperator(String token){
return (token .equals("+") || token .equals("-") || token .equals("*") || token .equals("/") );
}
private int evaluateSingleOperator (char operation ,int op1,int op2){
int result=0;
switch (operation){
case ADD:
result =op1+op2;
break;
case SUBTRACT :
result =op1-op2;
break;
case MULTIPLY :
result =op1*op2;
break;
case DIVIDE :
result =op1/op2;
}
return result ;
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/CS-IMIS-23/20172306.git
git@gitee.com:CS-IMIS-23/20172306.git
CS-IMIS-23
20172306
20172306
master

搜索帮助