能推荐一个表达式解析的java类库么?

紫海龟 发布于 2011/08/09 10:49
阅读 3K+
收藏 4

如题:

需要解析 一个有各种double和int经过+、-、*、/、()、运算组成的表达式。

在OSChina搜索过表达式解析,在结果中尝试过Expr4J,ExpressionJ,

ExpressionJ文档少,Expr4J官方示例提供的demo在实际的jar包中,不存在部分实现类。

请大家推荐一个。

加载中
2
逝水fox
逝水fox

如果是四则运算算式的话 可以直接调用Java的JavaScript脚本引擎计算

ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
// op为String类型的四则运算算式
Object result = engine.eval(op);

逝水fox
逝水fox
恩 读书的时候写四则运算计算器用这东西偷懒的...
烈冰
烈冰
1.6以上才支持
1
freish
freish

楼上说的js是一种方式,但它在高并发的时候非常耗时,一个简单的语句都能执行好几秒,当然,js不仅支持表达式,还支持脚本

如果只是执行表达式,推荐使用JEXL,非常的快。

 

这两者都在实际的高并发产品中用过,最终将js换成了jexl

jexl2版本支持jsr223,可以像楼上的那种方式使用,getEngineByName("jexl")就OK


在jdk1.5中使用jsr223classpath中需要以下jar包:bsf-api-3.1.jar、commons-jexl-2.0.1.jar、commons-logging-1.1.1.jar


jdk1.6已经支持jsr223,只需commons-jexl-2.0.1.jar一个jar包即可

0
红薯
红薯
这个还真没玩过啊,不熟悉
0
返回顶部
顶部