【发布时间】:2015-04-13 07:29:46
【问题描述】:
private class InputListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
Stack<Integer> operandStack = new Stack<Integer>();
Stack<Character> operatorStack = new Stack<Character>();
String input = inputTextField.getText();
StringTokenizer strToken = new StringTokenizer(input, " ", false);
while (strToken.hasMoreTokens())
{
String i = strToken.nextToken();
int operand;
char operator;
try
{
operand = Integer.parseInt(i);
operandStack.push(operand);
}
catch (NumberFormatException nfe)
{
operator = i.charAt(0);
operatorStack.push(operator);
}
}
int result = sum (operandStack, operatorStack);
resultTextField.setText(Integer.toString(result));
}
我的前缀表达式代码一次只会计算一个表达式(即 + 3 1)。我希望它在一个用户输入表达式中评估多个表达式(即 * + 16 4 + 3 1)。如何编辑提供的代码以使其评估多个表达式?感谢您的帮助。
【问题讨论】:
-
方法
sum在做什么? -
@isnot2bad sum 方法计算操作数的总和或乘积。我在 sum 方法中使用 if...else if 语句来计算。例如: if(operator == '+'){operand1 =operandStack.pop();操作数 2 = 操作数堆栈.pop();结果 = 操作数 2 + 操作数 1; }。如何编辑代码以使其一次评估多个表达式?
标签: java expression