我编写了一个类来对基本算术运算符进行后修复计算 - 代码如下。
public class PostFixCalculatorRPN
{
public static void main()
{
String input = JOptionPane.showInputDialog("PostFix expression: ");
Stack s = new Stack();
for (int i = 0; i < input.length(); i++)
{
char ch = input.charAt(i);
if (ch == '+' || ch == '-' || ch == '*' || ch == '/')
{
// pop 2 numbers off and operate
switch (ch)
{
case '+':// push the sum of the 2 numbers back on stack
case '-': // push the difference of the 2 numbers back on stack
case '*': // push the product of the 2 numbers back on stack
case '/':// push the quotient of the 2 numbers back on stack
}
} else
s.push(ch + "");
}
int answer = Integer.parseInt((String) s.pop());
System.out.println(printInput(input) + ": Evaluates to -> " + answer);
System.exit(0);
}
public static String printInput(String s)
{
String str = "";
for (int i = 0; i < s.length(); i++)
str += s.charAt(i);
return str;
}
}
我相信我的Stack
课程可以正常工作,但如有必要,我也可以发布。
我的计算器的输出与预期的不一样,例如输入53+
评估为3
和92*
评估为2
,而我分别期待8
和18
。