打包下載圖片
阿新 • • 發佈:2022-03-22
package 資料結構; import java.util.ArrayList; import java.util.List; import java.util.Stack; public class NiBoLanExpression { public static void main(String[] args) { String expression = "3 4 + 5 × 6 -"; String[] split = expression.split(" "); List<String> list = new ArrayList<String>(); for (String ele : split) { list.add(ele); } System.out.println(Calculator(list)); } public static int Calculator(List<String> list){ Stack<String> stack = new Stack<>(); for(String ele: list){ if (ele.matches("\\d+")){ stack.push(ele); }else{ int num2 = Integer.parseInt(stack.pop()); int num1 = Integer.parseInt(stack.pop()); int res = 0; if (ele.equals("+")){ res = num1 + num2; }else if (ele.equals("-")){ res = num1 - num2; }else if (ele.equals("×")){ res = num1 * num2; }else if (ele.equals("÷")){ res = num1 / num2; }else throw new RuntimeException("運算子有誤"); stack.push(res + ""); } } return Integer.parseInt(stack.pop()); } }