下面是“Java简单实现计算器”的完整攻略:
1. 实现思路
Java简单实现计算器的核心是要实现对用户输入的表达式的计算,这可以通过将输入的表达式转化成中缀表达式,然后再将中缀表达式转换成后缀表达式来实现。转换成后缀表达式后,计算过程可以通过栈的数据结构来实现。
具体步骤如下:
- 接收用户输入的表达式。
- 将表达式转换成中缀表达式。
- 将中缀表达式转换成后缀表达式。
- 用栈计算后缀表达式的值。
- 输出结果。
2. 代码实现
以下是代码实现的核心代码:
public class Calculator {
private Stack<Integer> stack = new Stack<>();
private int calculate(int num1, int num2, char operator) {
switch (operator) {
case '+':
return num1 + num2;
case '-':
return num1 - num2;
case '*':
return num1 * num2;
case '/':
return num1 / num2;
default:
throw new IllegalArgumentException("Invalid operator: " + operator);
}
}
public int evaluate(String expression) {
String[] tokens = expression.split(" ");
for (String token : tokens) {
if (token.matches("\\d+")) {
stack.push(Integer.valueOf(token));
} else {
int num2 = stack.pop();
int num1 = stack.pop();
stack.push(calculate(num1, num2, token.charAt(0)));
}
}
return stack.pop();
}
}
3. 示例说明
以下是两个示例说明:
示例1:
如何计算表达式 "2 + 3 * 4 - 6 / 2" 的值?
按照上述实现思路,将中缀表达式转换成后缀表达式为: "2 3 4 * + 6 2 / -"
使用上面的代码实现计算器,输入 "2 3 4 * + 6 2 / -",输出为 "8"。
示例2:
如何计算表达式 "( 5 - 2 ) * 3 + 4 / 2" 的值?
按照上述实现思路,将中缀表达式转换成后缀表达式为: "5 2 - 3 * 4 2 / +"
使用上面的代码实现计算器,输入 "5 2 - 3 * 4 2 / +",输出为 "11"。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java简单实现计算器 - Python技术站