算术表达式求值java
时间: 2023-10-14 18:20:02 浏览: 112
好的,我可以回答您关于算术表达式求值的问题。在Java中,可以使用栈来实现算术表达式求值。首先将中缀表达式转换为后缀表达式,然后使用栈对后缀表达式进行求值。
例如,对于中缀表达式"2 + 3 * 4 - 5",其对应的后缀表达式为"2 3 4 * + 5 -"。然后使用栈对后缀表达式进行求值。具体实现方法可以参考以下代码:
```
import java.util.*;
public class ArithmeticExpressionEvaluation {
public static void main(String[] args) {
String expression = "2 + 3 * 4 - 5";
String[] tokens = expression.split(" ");
Stack<Integer> stack = new Stack<>();
for (String token : tokens) {
if (isOperator(token)) {
int b = stack.pop();
int a = stack.pop();
int c = evaluateExpression(a, b, token);
stack.push(c);
} else {
stack.push(Integer.parseInt(token));
}
}
System.out.println("Result: " + stack.pop());
}
static boolean isOperator(String token) {
return token.equals("+") || token.equals("-") || token.equals("*") || token.equals("/");
}
static int evaluateExpression(int a, int b, String operator) {
switch (operator) {
case "+":
return a + b;
case "-":
return a - b;
case "*":
return a * b;
case "/":
return a / b;
default:
return 0;
}
}
}
```
希望能对您有所帮助!
阅读全文