常见的表达式计算lib有:
(1)parsii
String exp = "2 + (7-5) * 3.14159 * x + sin(0)";
// compile
Scope scope = Scope.create();
Expression parsiiExpr = Parser.parse(exp);
Variable var = scope.getVariable("x");
var.setValue(X_VALUE);
// evaluate
double result = parsiiExpr.evaluate();
System.out.println(result);//-> 2.0
(2)JEval
String exp = "2 + (7-5) * 3.14159 * #{x} + sin(0)";
// compile
Evaluator jevalEvaluator = new Evaluator();
jevalEvaluator.setVariables(Collections.singletonMap("x", Double.toString(X_VALUE)));
// evaluate
double result = Double.parseDouble(jevalEvaluator.evaluate(exp));
System.out.println(result);//-> 2.0
(3)JEPLite
String exp = "2 + (7-5) * 3.14159 * x + sin(0)";
// compile
JEP jep = new JEP();
jep.addVariable("x", X_VALUE);
jep.parseExpression(exp);
DoubleStack jepStack = new DoubleStack();
// evaluate
double result = jep.getValue(jepStack);
System.out.println(result);//-> 2.0
http://andreas.haufler.info/2013/12/how-to-write-one-of-fastest-expression.html
http://www.transylvania-jug.org/archives/5777
分享到:
相关推荐
ExpressionEvaluator表达式计算帮助文档 ExpressionEvaluator表达式计算帮助文档
数学表达式库,可以解析各种复杂数学表达式。
一个开源的Java表达式计算引擎 Java代码 /** * java 表达式计算引擎 * @author Michael sun */ public class TestExpr4j { /** * @param args */ public static void main(String[] args) { ...
javac src/ga/unnikked/expressionevaluator/*.java src/ga/unnikked/expressionevaluator/*/*.java 并使用(记住cd src )执行它: java ga/unnikked/expressionevaluator/Main 您还可以使用-f指令在文件中使用...
JavaScript Mathematical Expression Evaluator是一个基于纯js脚本的数学公式表达式计算工具,可以在客户端计算复杂的数学表达式,功能强大,调用方便!
数据类型:字符串:VALOR[t,...] 数字:VALOR...=] 包含:[包含] 数学:加:[+] 减:[-] 乘: [*] 除法:[/] 逻辑运算:与:[AND] 或:[OR] 非:[NOT] 函数运算:Sum:[sum] Average:[average] Cos:[cos] Sin:[sin]
表达评估者Expression Evaluator是为C#.NET构建的,将在给定语言模板的情况下评估数学,字符串和布尔算术表达式。概述这是一个用C#编写的项目,将使用给定的数学,字符串或布尔表达式,使用称为EE表达式的内置语言...
一个简单的 Android 应用程序来评估数学表达式。 它可以处理变量。 比计算器更有用,但不像 mathcad 或 linux 八度那么复杂。 小程序,不占空间。 以下是它采用的输入类型的示例:apple = 3, pear = 7 78 * (apple +...
数值表达式计算器该代码评估数值表达式并计算结果。可接受的数值表达式是具有加,减,乘,除运算符(+,-,*,/)的表达式,并且可以包含括号,方括号和大括号“(,),[,],{,}”。首先计算括号,方括号和花括号...
PHP数学表达式解析器和评估器 特征 快速评估 紧凑的代码库 运算符:+-* / ^% 托架,嵌套,无限级别 变量:预定义或动态估算 功能:预定义或动态连接 函数中的字符串参数,例如field(“ name”) 字符串操作,...
APCS-ExpressionEvaluator 一个用 Java 构建的表达式评估器,它利用了各种不同的 APCS 主题。 所有输入均以波兰语表示法给出。
一个表达式计算工具(支持添加自定义函数和变量) Brief introduction FinExpr is an expression evaluator implemented by Java. Focus on precision, can be used in financial system. FinExpr是一个Java语言实现...
提供excel或Google电子表格(如公式/表达式支持)的通用Java库。 该库还允许轻松添加新功能。 该项目包含示例\测试,以演示已提供的功能,并提供一些示例以扩展或添加新功能。 主题顺序如下: 算术函数 字符串...
可插拔的库,用于使用x86 JIT编译器在C ++程序中快速计算数学表达式。
:house:Fcaljs是一个适用于JavaScript和Node.js的广泛的数学表达式评估器库。 使用fcal,您可以精确地执行基本的算术百分比运算。 它具有灵活的表达式解析器,具有大量内置单元,函数和常量。 灵感来自特征单位变数...
流互操作性项目(FLOIP)表达... expression —一个字符串,其中包含与Flow Specification兼容的表达式。 context —一个对象,其值可以由提供的表达式引用。 import { EvaluatorFactory } from '@floip/expressio
用于解析和解析数学表达式的C#.NET Core解决方案。 项目具有由扩展Backus–Naur形式定义的自己的表达上下文无关语法。 语法是使用Amy库的解析器。 实际版本支持: 运算符+,-,*,/,^,% 函数:sin,cos,...
Archiva是Maven,Continuum和ANT等构建工具的理想伴侣。 Archiva提供了多种功能,其中包括远程存储库代理,安全访问管理,构建工件存储,交付,浏览,索引和使用情况报告,可扩展的扫描功能等等!...
exprtk:C ++数学表达式解析和评估库