后缀式求3 5.4 2.2 * +Java代码
时间: 2024-10-12 12:10:33 浏览: 32
基于Java的qq截图工具 设计软件源码+word毕业论文文档.zip
5星 · 资源好评率100%
后缀表达式,也称为逆波兰表示法(Reverse Polish Notation,RPN),是一种数学运算的表示方式,操作数在前,操作符在后。对于你提到的3 5.4 2.2 * + 这样的表达式,它代表先计算2.2乘以5.4,然后将结果加上3。在Java中,我们可以使用栈来解析和计算这种表达式。
以下是一个简单的Java函数示例,用于计算后缀表达式的值:
```java
import java.util.Stack;
public class PostfixCalculator {
public static double evaluate(String postfix) {
Stack<Double> stack = new Stack<>();
for (String token : postfix.split(" ")) {
if (isNumber(token)) {
stack.push(Double.parseDouble(token));
} else {
double b = stack.pop();
double a = stack.pop();
switch (token) {
case "+":
stack.push(a + b);
break;
case "-":
stack.push(a - b);
break;
case "*":
stack.push(a * b);
break;
case "/":
stack.push(a / b);
break;
}
}
}
return stack.pop(); // 返回最终结果
}
private static boolean isNumber(String s) {
try {
Double.parseDouble(s);
return true;
} catch (NumberFormatException e) {
return false;
}
}
public static void main(String[] args) {
String expression = "3 5.4 2.2 * +";
System.out.println(evaluate(expression)); // 输出结果
}
}
```
在这个例子中,`evaluate`函数会接收一个字符串形式的后缀表达式,并通过遍历每个元素,处理数字和操作符,最后返回计算的结果。
阅读全文