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());
//公式中分母为0
String 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