Калькулятор, реализованный в Java, принцип читается как комментарии кода, конкретный контент заключается в следующем
открытый класс mycalculator {public static void main (string [] args) {string obj = "6+ (8/2)+6/3+1*8+30"; Arraylist <string> arraylist = strformat (obj); System.out.println (obj + "=" + расчет (ArrayList)); } / *** Используйте последующие выражения для вычисления результата* 1. Когда текущая строка является числом, напрямую введите стек* 2. Когда текущая строка является калькулятором, выберите первые два вычисления в стеке* 3. Поместите результат вычисления в стек, а последний оставшийся элемент в стеке - это необходимый результат* / private Static int Рассчитывает (restlist <string> obj) {arrayList (arraylist <straft ressel -strain (aRseList <string> obj) {arrayList <stract> = arrayList <stract> = arrayList <stract> = = arrayList <straft> = arrayList <strain (aRselist <string> obj) System.out.println (результат); Stack <Integer> Stack = new Stack <> (); for (int i = 0; i <result.size (); i ++) {String symbol = result.get (i); if (isdigital (symbol)) {// число напрямую stack.push (integer.parseint (symbol)); } else {// Оператор int num1, num2; num1 = stack.pop (); // Установите два числа num2 = stack.pop (); Switch (Symbol) {case " +": Stack.push (num2 + num1); перерыв; case " -": stack.push (num2 - num1); перерыв; case " *": stack.push (num2 * num1); перерыв; case " /": stack.push (num2 / num1); перерыв; по умолчанию: перерыв; }}} return stack.pop (); } / *** Триверс-порядок изменяется на последующее обход* / Private Static ArrayList <string> Transform (ArrayList <string> ArrayList) {Stack <string> Stack = new Stack <> (); Arraylist <string> result = new ArrayList <> (); for (int index = 0; index <arraylist.size (); index ++) {string symbol = arraylist.get (index); if (isdigital (symbol)) {// Если это число, он выводит напрямую. Add (Symbol); } else if (symbol.equals (")")) {string tmp; while (! (tmp = Stack.pop ()). equals ("(")) {// stop после успешного результата. Меньше, чем приоритет в стеке, и всегда выпускается. Сначала формат в ArrayList * @param src 3 * 5 + 8; StringBuilder (); arraylist.add (comchar.tostring (). Trim (); } return ArrayList; ! Symbol.equals ("(") &&! Symbol.equals (")"); {case "+": case "-": return 3;Все вышеперечисленное - все содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.