java怎样计算一个String类型的数学表达式?
java怎样计算一个String类型的数学表达式?比如(3+5)*20/5^8-90.
------解决方案--------------------自己写一个方法来拆分
------解决方案--------------------想偷懒吗? 组合成SQL 语句 丢数据库执行下,Access也可以。
------解决方案--------------------只有自己实现一个方法了,先将这类表达式转换成逆波兰式表达式,再使用栈进行计算,实现起来是有一定难度的,特别是其中还夹杂着冪、乘、除、括号等有先后运算顺序的运算符。
可以参考以下的一些文档:
http://www.ibm.com/developerworks/cn/java/l-expression/index.html
http://www.ibm.com/developerworks/cn/java/j-w3eva/index.html
------解决方案--------------------晕 好像要自己写函数解析这个表达式才可以
------解决方案--------------------有一些公式解析软件可以采用,找找看
------解决方案--------------------http://www.hendriklipka.de/java/funcpars.html
http://parser.softalizer.com/
------解决方案--------------------组合成SQL 语句 丢数据库执行下,Access也可以。
==========================================
强!
------解决方案--------------------用beanshell吧
------解决方案--------------------常见的递归下降解释器,或者使用一些语法分析生成器,比如javacc,antlr等
------解决方案--------------------java6继承rhino,转成javascript,直接eval也行,或者如上面所说的调用beanshell
、ruby之类的脚本来eval
------解决方案--------------------继承=》集成
------解决方案--------------------动态编译
------解决方案--------------------想偷懒吗? 组合成SQL 语句 丢数据库执行下,Access也可以。
======================================================
学习
------解决方案--------------------java6继承rhino,转成javascript,直接eval也行,或者如上面所说的调用beanshell
、ruby之类的脚本来eval
=================================================
没学过。。。
------解决方案--------------------拆开,写个函数,就是麻烦了点
------解决方案--------------------antlr
------解决方案--------------------具体大致有2种方法 4楼 已经说了一种了还有我以前好象做过另一种 是用的c++ 还利用词法分析原理 对错误的表达式有提示
http://blog.sina.com.cn/fengyehongpiao 去看看就知道了
------解决方案--------------------o
------解决方案--------------------可以使用编绎原理中的LR语法分析实现,也可以使用栈来实现也可以。
------解决方案--------------------正则表达式 split
------解决方案--------------------学习
------解决方案--------------------顶
------解决方案-------------------- 想偷懒吗? 组合成SQL 语句 丢数据库执行下,Access也可以。
==================================
正解 方便实用 我也是这么做的 要不分解起来太麻烦
------解决方案--------------------http://blog.csdn.net/CrazyGou/archive/2007/06/10/1646246.aspx
------解决方案--------------------print "计算器,输入q退出\n ";