用Java实现的计算器,原理看代码注释,具体内容如下
public class MyCalculator { public static void main(String[] args) { String obj = "6+(8/2)+6/3+1*8 + 30"; ArrayListarrayList = strFormat(obj); System.out.println(obj + "=" + calculator(arrayList)); } /** * 采用后续表达式计算结果 * 1、当前字符串为数字时,直接入栈 * 2、当前字符串为计算符时,取出栈中的前两个计算 * 3、将计算结果再放入到栈中,栈中最后剩余的一个元素就是要求的结果 */ private static int calculator(ArrayList obj) { ArrayList result = transform(obj); System.out.println(result); Stack stack = new Stack<>(); for (int i = 0; i transform(ArrayList arrayList) { Stack stack = new Stack<>(); ArrayList result = new ArrayList<>(); for (int index = 0; index strFormat(String src) { if (src == null || src.equals("")) { return null; } ArrayList arrayList = new ArrayList<>(); StringBuilder comChar = new StringBuilder(); for (int i = 0; i
以上全部为本篇文章的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。