Java第三方库——Jep数学公式计算
官网简介:JEP JAVA仅用几行代码解析和计算数学表达式。这个包允许用户以字符串的形式输入公式,并立即对其求值。JEP支持用户定义的变量、常量和函数。包括一些常用的数学函数和常量。
1.下载3.x版本依赖并引入
官方网站:http://www.singularsys.com/jep/download-trial.php
由于Maven仓库中目前没有3.x版本的jep,需要手动下载引入到项目中
下载的压缩包中包含jar包,放入项目目录下并在pom.xml中引入,这里我是放到了resources/lib下
<dependency><groupId>com.singularsys</groupId><artifactId>jep</artifactId><version>3.5</version><scope>system</scope><systemPath>${project.basedir}/src/main/resources/lib/jep-java-3.5-trial.jar</systemPath></dependency>
2.使用并测试
这里主要测试了四种情况:
- 常规数字构成的公式
- 公式中分母为0
- 布尔表达式
- 逻辑运算
具体测试代码如下:
import com.singularsys.jep.Jep;
import com.singularsys.jep.JepException;public class jepTest {public static void main(String[] args) {try {Jep jep=new Jep();//常规公式String formula1 = "3x+4y+-5z";jep.addVariable("x",1);jep.addVariable("y",1);jep.addVariable("z",1);jep.parse(formula1);System.out.println("测试公式1:"+jep.evaluate().toString());//公式中分母为0String formula2 = "3/0";jep.parse(formula2);System.out.println("测试公式2:"+jep.evaluate().toString());//布尔表达式String formula3 = "3>=0";jep.parse(formula3);System.out.println("测试公式3:"+jep.evaluate().toString());//逻辑运算
// String formula4 = "1&&0";
// String formula4 = "1||0";String formula4 = "1!=1";jep.parse(formula4);System.out.println("测试公式4:"+jep.evaluate().toString());} catch (JepException e) {e.printStackTrace();}}}
运行结果:
测试公式1:2.0
测试公式2:Infinity
测试公式3:true
测试公式4:false