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
>
分享到:
相关推荐
BeanShell在Java应用中常被用来进行快速原型开发、测试以及扩展,它提供了一种简单的方式来动态执行Java表达式、语句或者完整的脚本。 BeanShell的核心库包含在`bsh-core-2.0b4.jar`文件中,这是在根目录Bean/bin...
这个实验“基于表达式的计算器ExprEval”旨在让学生深入理解编译器的工作原理,并通过实际操作来掌握编译技术。下面将详细介绍这个实验涉及的知识点,以及如何进行实践。 1. **词法分析(Lexical Analysis)**: ...
总结来说,"Java数学表达式计算"涉及到如何在Java环境中解析和评估复杂的数学表达式。这可以通过使用Java内置的方法、第三方库如Apache Commons Math,或是自定义解析器实现。通过分析提供的`ExprEvalSample`代码,...
Expr软件包提供了可以编译和评估表达式的引擎。 表达式是返回值(主要但不限于布尔值)的单行代码。 它旨在简化,提高速度和提高安全性。 该软件包的目的是允许用户使用配置内部的表达式来实现更复杂的逻辑。 它是...
Go-Expr是一个强大的工具,它为Go编程语言提供了一个表达式评估引擎,使得开发者能够方便地在程序中处理复杂的逻辑和业务规则。这个库的主要目标是让开发者可以在配置文件或者运行时环境中动态地定义和执行表达式,...
4. **后缀表达式求值**:一旦得到后缀表达式,就可以进行计算了。遍历后缀表达式,将遇到的每个数字压入栈中,遇到运算符时,弹出栈顶的两个数字进行运算,然后将结果压回栈中。最后,栈中剩余的唯一元素即为表达式...
总之,Fel表达式引擎以其简洁的语法和强大的功能,成为Java开发中不可或缺的工具之一,它在动态计算和逻辑控制方面的灵活性,极大地提高了代码的可读性和可维护性。理解并熟练运用Fel,对于提升开发效率和软件质量...
如果你打算在自己的Java项目中集成类似的表达式计算功能,可以学习"ExprEval_java 计算器"的源码,理解其如何使用JEP库来解析和求值表达式。此外,你还需要熟悉Java编程,特别是关于类、对象和库的使用。JEP库的官方...
Meta::Expr是一个专注于表达式模板的C++库,它的设计目标是提供一种高效且灵活的方式来处理计算表达式,特别是对于数值分析中的数组和矩阵操作。元编程是C++中的一种技术,通过在编译时执行代码来提升程序性能,减少...
符号计算是一种基于代数的计算方法,可以处理符号表达式,包括变量、函数等。 符号变量的定义 在使用符号计算功能之前,需要先定义符号变量。可以使用 syms 命令来定义一个或多个符号变量。例如:syms x y 定义了...
根据给定的信息,我们可以推断出这是一个关于表达式计算的数据结构课程设计项目。该课程设计主要涉及到了栈这种数据结构的应用以及如何通过栈来解析并计算各种数学逻辑表达式。 ### 一、栈的基本概念 栈是一种特殊...
做了一个dll,具有多项式拟合和表达式计算的功能,导出接口如下: /////////////////////////////////// /* 获取帮助信息 strOut:保存帮助文本信息 len:表示strOut的缓存长度 返回值:strOut==NULL或len==0时,...
【Java算术表达式计算类库 ExpressionJ】是一个专门用于解析和计算数学算术表达式的Java库。这个库为开发者提供了便利,使他们能够在程序中动态处理和求解复杂的数学公式,而无需手动实现解析算法。下面将详细介绍...
【Java算术表达式计算类库 ExpressionJ】是专门为Java开发者设计的一个强大的工具,它能够解析和计算复杂的算术表达式。这个库的核心功能在于它能够解析字符串形式的数学表达式,并将其转换为可执行的代码,从而进行...
实现了四则运算+,-,*,/,max,min,sin,cos四个内值函数。 还有求负和求幂运算。 实现了三元运算符?: 实现了逻辑运算& ! ! 实现了比较运算符 > < >= 可以单独求布尔表达式的值。 java版。编译原理作业
本文将深入探讨如何在C语言中计算各种表达式,以及与表达式计算相关的知识点。 首先,C语言中的表达式是程序的核心组成部分,它们用于执行计算、比较和逻辑操作。表达式的计算遵循特定的运算规则,即运算符优先级和...
表达式计算源代码
expr4 = x - 2;`代表x与y的差以及x减去2的结果。 5. **乘法**:乘法操作有多种方式,可以直接使用"*",或者使用`.*`(点乘)在向量或矩阵之间进行逐元素乘法。例如,`expr5 = x*y; expr6 = x.*y;`分别表示x和y的...
- **表达式解析**:expr引擎能够解析字符串形式的数学表达式,包括加减乘除、括号、指数、对数等基本运算,以及更复杂的函数和逻辑运算。 - **业务规则处理**:除了基础的数学计算,expr还支持定义和执行业务规则...