zoukankan      html  css  js  c++  java
  • java公式解析器学习与开发(1)

    public class Evaluate {
        public static void main(String[] args) { 
            Stack<String> ops  = new Stack<String>();
            Stack<Double> vals = new Stack<Double>();
            String[] strs = "( 1 + ( ( 2 + 3 ) * ( 4 * 5 ) ) )".split(" ");
            int i = 0;
            while (i<strs.length) {
                String s = strs[i];
                if      (s.equals("("))               ;
                else if (s.equals("+"))    ops.push(s);
                else if (s.equals("-"))    ops.push(s);
                else if (s.equals("*"))    ops.push(s);
                else if (s.equals("/"))    ops.push(s);
                else if (s.equals("sqrt")) ops.push(s);
                else if (s.equals(")")) {
                    String op = ops.pop();
                    double v = vals.pop();
                    if      (op.equals("+"))    v = vals.pop() + v;
                    else if (op.equals("-"))    v = vals.pop() - v;
                    else if (op.equals("*"))    v = vals.pop() * v;
                    else if (op.equals("/"))    v = vals.pop() / v;
                    else if (op.equals("sqrt")) v = Math.sqrt(v);
                    vals.push(v);
                }
                else vals.push(Double.parseDouble(s));
                i++;
            }
            System.out.println(vals.pop());
        }
    }
    

    简单的算术表达式计算,上面的程序必须添加括号,而且各个分词之间必须有空格,这样才能区分出计算结构。

    中缀表达式是人们常用的算术表示方法,中缀记法中括号是必需的。计算过程中必须用括号将操作符和对应的操作数括起来,用于指示运算的次序。

  • 相关阅读:
    SQL 笔记汇总
    SQL 备份数据 脚本 -添加到作业 步骤里面 可删除历史天文件
    SQL 事物
    MS-SQL2005 执行DOS命令
    笔记 hosts文件修改 网站发布二级目录 vs2008,vs2010 css验证
    自定义日期控件
    jQuery CSS3 照片墙
    CSS3 照片墙
    jquery.cookie.js
    CSS jQuery 图片全屏切换
  • 原文地址:https://www.cnblogs.com/daichangya/p/12959195.html
Copyright © 2011-2022 走看看