首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

java怎么计算一个String类型的数学表达式

2011-12-04 
java怎样计算一个String类型的数学表达式?java怎样计算一个String类型的数学表达式?比如(3+5)*20/5^8-90.[

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 ";


while( <> ){
$i=$_;
chomp($i);
unless($i){
next;
}
if($i =~ m/q/i){
last;
}
$o=eval($i);
print "Answer = $o \n ";
}

执行结果:

mo@ubuntu:~/Desktop$ perl calc
计算器,输入q退出
(3+5)*20/5^8-90
Answer = 4294967182


Perl些的,JavaScript也有类似的eval函数,可以直接执行字符串表达式,不过Java里有没有还真的不知道
[解决办法]
想偷懒吗? 组合成SQL 语句 丢数据库执行下,Access也可以。

这个强啊 这个思路要记住 呵呵

热点排行