在java中解析数学表达式的好库是什么?

时间:2010-02-09 05:03:52

标签: java android math parsing

我是Android开发人员,作为我的下一个应用程序的一部分,我需要评估各种用户创建的数学表达式和方程式。我正在寻找一个很好的java库,它是轻量级的,可以使用用户定义的变量和常量,trig和指数函数等来评估数学表达式。

我环顾四周,Jep似乎很受欢迎,但我希望听到更多建议,特别是那些之前使用过这些图书馆的人。

5 个答案:

答案 0 :(得分:3)

JEval是一个不错的选择。由于它变得商业化,我放弃了Jep。唯一值得关注的是,JEval目前似乎有点休眠(2008年最后一次发布)。

答案 1 :(得分:3)

我写了一篇简单但功能强大的Math Expression Evaluator,这是免费和开源的。它的主要优点是快速而小巧 - 手持设备都是一件好事。如果它符合您的需要,欢迎您使用它。

主要特点:

  • 基本数学运算符,具有推断的优先级(^ *×·/÷%+ - )。
  • 带括号的显式优先。
  • 括号内的子表达式的隐式乘法。
  • 纠正指数(权力运算符)的权利相关性。
  • 直接支持前缀为0x的十六进制数字。
  • 常量和变量。
  • 可扩展的运营商。
  • 可扩展的功能。
  • 20 KiB足迹。

实施例

MathEval math=new MathEval();

math.setVariable("Top",    5);
math.setVariable("Left",  20);
math.setVariable("Bottom",15);
math.setVariable("Right", 60);

System.out.println("Middle: "+math.evaluate("floor((Right+1-Left)/2)"));

答案 2 :(得分:1)

试试https://code.google.com/p/expressionoasis/。它是一个可扩展的表达式评估框架,将满足这些要求。

答案 3 :(得分:0)

这不完全适合我的初始条件,但我找到了一个用C ++编写的精彩解析器。我正在试图找出Android的Native代码支持,看看我是否可以使用它。这正是我的需要。

这是项目的文档。
http://www.codeproject.com/KB/recipes/MathieuMathParser.aspx

答案 4 :(得分:0)

有一种名为formula4j的新商业工具,某些人可能对此感兴趣。