blog迁移至:
http://www.micmiu.com
本文介绍一个开源的Java表达式计算引擎:
Expr4J:
Expression Calculation Engine for Java
官方主页:
http://expr4j.sourceforge.net/
可以在官网下载相关的源码和lib包,本文附件也提供下载:
expr4j-0.0.1-src.zip
/**
* java 表达式计算引擎
* @author Michael sun
*/
public class TestExpr4j {
/**
* @param args
*/
public static void main(String[] args) {
SimpleEvaluationContext context = new SimpleEvaluationContext();
System.out.println("Expr Evaluator v1.0");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while (true) {
try {
System.out.print(">");
String line = br.readLine();
if (line == null)
break;
Expr e = ExprParser.parse(line);
Exprs.toUpperCase(e);
if (e instanceof ExprEvaluatable) {
e = ((ExprEvaluatable) e).evaluate(context);
}
System.out.println(e);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
测试执行结果如下:
Expr Evaluator v1.0
>25*36*(42-18*2)/3*2-45+89/46+13*2/32-45
3512.7472826086955
>10^2/5-(23/2)
8.5
>
分享到:
相关推荐
Expr软件包提供了可以编译和评估表达式的引擎。 表达式是返回值(主要但不限于布尔值)的单行代码。 它旨在简化,提高速度和提高安全性。 该软件包的目的是允许用户使用配置内部的表达式来实现更复杂的逻辑。 它是...
相对新手而言,这个实验有较大难度。这里提供大家一个参考。但希望大家还是自己写,你会发现原来这么回事。不要把问题想得太复杂了。
这个一个用C/C++实现的基于逆波兰式理论基础的小计算器程序,可以解析大部分常用的数学表达式。
实现了四则运算+,-,*,/,max,min,sin,cos四个内值函数。 还有求负和求幂运算。 实现了三元运算符?: 实现了逻辑运算& ! ! 实现了比较运算符 > < >= 可以单独求布尔表达式的值。 java版。编译原理作业
表达式计算源代码
Java编写的表达式计算器, 即可以像我们书写表达式那样直接输入计算表达式, 程序自动进行运算, 支持加减乘除幂运算以及判断表达式如A?B C, 程序包含完整的Document和测试运行环境
exp4j_tldexp4j JEE JSP 标签使用 JSTL 和表达式语言: < c xss=removed xss=removed>< c xss=removed xss=removed>< expr4j xss=removed xss=removed> x = ${ x } , ${ expr_str } = </ expr4j>没有标签体: < expr...
=======最终测试发布版========= 数学表达式计算函数库V1.4.04_ evalexprV144R.rar 数学表达式计算函数库V1.4.04_ evalexprV144R.rar =======最终测试发布版=========
java源码小程序表达式 这个包解析和评估浮点数上的数学表达式,如2 + 2或cos(x/(2*pi)) * cos(y/(2*pi)) 。 设计重点是易于使用和有用的错误消息,易于集成到小程序中,以及良好的性能:快速评估和较短的下载时间。 ...
EL语言是JSTL输出(输入)一个JAVA表达式的表示形式。 在JSTL中,EL语言只能在属性值中使用。EL语言只能通过建立表达式${exp1}来进行调用。在属性值中使用表达式有三种方式。 1、 value属性包含一个表达式 <some:...
字符串表达式解释计算动态连接库1.2.4 实用的程序开发辅助工具,,不再多说了, 需要的下,,V1.2.04比以前版本有很大变化, 程序算法改动较大,功能极为完善,, 为此资源分增加至二,, 或者你也可以选择下载...
meta :: Expr {T_emplate}是一个处理表达式模板的C ++库。 有了它,您可以轻松地从ET功能中受益并加快C ++类的速度。 这对诸如数组或矩阵之类的数值分析类有效。
该程序包的目的是允许用户在配置中使用表达式来处理更复杂的逻辑。 它是业务规则引擎基础的完美候选者。
做了一个dll,具有多项式拟合和表达式计算的功能,导出接口如下: /////////////////////////////////// /* 获取帮助信息 strOut:保存帮助文本信息 len:表示strOut的缓存长度 返回值:strOut==NULL或len==0时,...
根目录Bean/bin文件夹下bsh-core-2.0b4.jar文件是jar包, 根目录Bean/com/strart.java是用BeanShell计算1+2=3的代码例子
使用boost::sprirt编写的表达式解析器,代码很容易扩展,功能很强大,适合做功能强大的客户化定义程序。 -----------表达式解析--------- 已定义的函数有:PI,SIN,COS,TAN,,ABS,EXP,LOGN,POW,SQRT,FORMAT,LENGTH,...
The public interface should look like this:class Expr {// …public:Expr(char*);int eval();void print();};The string argument for the constructor Expr::Expr() is the expression. The function Expr::...
判断表达式为真,此时如果expr1为真则expr=expr1,为假则变成False or expr2,expr=expr2. 判断表达式为假,则演变成False or expr2,此时expr=expr2. 只要表达式expr1,expr2都为真,上述等式就等同于C中的 expr=判断...
然后,您可以像这样计算表达式: expr . parse ( '2*2 + bar.foo' , { "bar" : { "foo" : 38 } } ) ; // 42 expr . parse ( 'x = y + " " + x = z' , { "x" : "abc" , "y" : "123" , "z" : "abc" } ) ; // false ...