package cn.hnh.calculator;
import java.util.Stack;
public class Calculator {
public static int i = 0;
public static void main(String[] args) {
String s = "167.5+3-2+2!-4/2+3^2\0";
Calculator c = new Calculator();
StringBuilder RPN = new StringBuilder();
float temp = c.calculate(s, RPN);
System.out.println(temp);
}
public float calculate(String str, StringBuilder RPN) {
// 新建两个栈,一个存储数据,一个存储操作符
Stack<Float> numStack = new Stack<>();
Stack<Character> operStack = new Stack<>();
char[] oper2 = str.toCharArray();
operStack.push('\0');
while (!operStack.isEmpty()) {
if (isDigit(str)) {
readNumble(str, numStack);
RPN.append(numStack.peek());
} else {
switch (orderBetween(operStack.peek(), oper2[i])) {
case '<':
operStack.push(oper2[i]);
i++;
break;
case '=':
operStack.pop();
i++;
br
Java实现计算器(可以计算括号,小数,乘方,以及基本的加减乘除)
最新推荐文章于 2024-05-09 09:53:34 发布