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
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐