标签:else static lua parse double 表达式求值 rar pre 表达
1 public static double evaluate(String inStr) { 2 Stack<String> ops = new Stack<String>(); //操作符栈 3 Stack<Double> vals = new Stack<Double>(); //操作数栈 4 char[] arr = inStr.toCharArray(); 5 for(char c : arr){ 6 String s =c+""; 7 if(s.equals("")); 8 else if(s.equals("(")) ops.push(s); 9 else if(s.equals("+")) ops.push(s); 10 else if(s.equals("-")) ops.push(s); 11 else if(s.equals("*")) ops.push(s); 12 else if(s.equals("/")) ops.push(s); 13 else if(s.equals(")")){//如果是 )弹出操作符和操作数,计算结果并压入栈 14 String op = ops.pop(); 15 double v = vals.pop(); 16 if(op.equals("+")) v=vals.pop()+v; 17 else if(op.equals("-")) v=vals.pop()-v; 18 else if(op.equals("*")) v=vals.pop()*v; 19 else if(op.equals("/")) v=vals.pop()/v; 20 vals.push(v); 21 } 22 else vals.push(Double.parseDouble(s)); 23 } 24 return vals.pop(); 25 }
标签:else static lua parse double 表达式求值 rar pre 表达
原文地址:http://www.cnblogs.com/zyh186/p/7588175.html