编写思路
- 逆波兰计算器,是指计算后缀表达式(逆波兰表达式),并不是直接计算中缀表达式无括号。
- 计算值value过程。新建一个类,里面一个方法,参数数是ArrayList al,集合里存储的是后缀表达式,数字与符号分离。
- 在方法里创建一个栈。
- 对ArrayList集合进行遍历,是数字直接压栈,是符号进行相关运算,运算完节再压栈(注意除法和减,两个数运算顺序)
- 最后在栈留下来的就是,计算结果
创建一个Compute类、
public class Compute{
public int outcomp(ArrayList<String> al){
Stack stack=new Stack();
for(String s: al){
if(s.charAt(0)<48 || s.charAt()>57){
int sum1=stack.pop;
int sum2=stack.pop;
int temp=jiSun(sum1,sum2,s);
stack.push(temp);
}else{
stack.push(Integer.parseInt(s);
}
}
}
return stack.pop();
}
四则运算方法
public int jiSun(int sum1,int sum2 ,String s){
int temp=0;
switch(s){
case "+":
temp=sum1+sum2;
break;
case "-"
temp=sum2-sum1;
break;
case "*":
temp=sum1*sum2;
break;
case "/"
temp=sum2/sum1;
break;
default:
System.out.println("符号有误");
}
return temp;
}