数学表达式解析的Java与Scala与python技术框架免费推荐

        各位好,在我们的日常开发需求中,有这样的一种需求,解析一个字符串的数学表达式,并将其结果获取到,例如需要开发一个计算器等需求的时候,这类技术往往是需要但却难以找到,而在GitHub中,发现了这样的一个框架,它实现了强悍的数学计算功能,从简单的无括号表达式到数列累加表达式,或者自定义函数计算表达式等,该框架中都有所实现,下面一起来看一下有关该框架的信息吧!

框架名称:mathematical-expression

框架链接JavaAPI:GitHub - BeardedManZhao/mathematical-expression: Java API concise framework for parsing string mathematical expressions | 用于解析字符串数学表达式的JavaAPI简洁框架 

框架链接PythonAPI:

GitHub - BeardedManZhao/mathematical-expression-py: Python API concise framework for parsing string mathematical expressions | 用于解析字符串数学表达式的PythonAPI简洁框架

        在上述的API有两套实现,语法上几乎是一致的,针对数学表达式需求的开发者们,可以直接通过maven, gradle,pip 三种方式获取到这个框架,可以说是比较友好的一种技术了,下面来带大家看一看,如何使用框架

1,将框架下载下来

        针对Java或Scala开发者来说,通过maven获取到框架是有效的一种操作,maven导入mathematical-expression的依赖坐标就如下所示,当然啦,针对python党们,使用pip命令就是最好的选择,这个框架支持使用pip的哦!

    
        
            io.github.BeardedManZhao
            mathematical-expression
            1.1.5
        
    
pip install mathematical_expression_py

 如果您是一位python玩家,可以在  mathematical-expression-py · PyPI 查阅到有关python的文档!

数学表达式解析的Java与Scala与python技术框架免费推荐_第1张图片

        接下来,使用这个框架进行一个具有嵌套括号数学表达式的计算,一起来看看它的表现吧!

package core;

import core.calculation.number.BracketsCalculation2;
import core.container.CalculationNumberResults;
import exceptional.WrongFormat;

public class MAIN {
    public static void main(String[] args) throws WrongFormat {
        // 获取到括号表达式计算组件,这里就是为获取到的组件起一个唯一的名字
        // 这个操作会将当前组件实例化,以name的名字添加到管理者中,如果这个名字在之前就已经使用过,只需要更换一个就好啦
        BracketsCalculation2 bracketsCalculation2 = BracketsCalculation2.getInstance("name");
        // 构建一个数学表达式 这是一个嵌套数学表达式,计算复杂表达式针对这个框架来说是没有问题的哦!
        String s = "3 * (20 / (11 - 1))";
        // 检查数学表达式是否有错误,针对确定没有问题的数学表达式,也可以不检查,如果检查出错误,这里会抛出错误信息
        bracketsCalculation2.check(s);
        // 计算数学表达式,会返回一个结果对象,其中存储着运算结果以及运算过程中的信息
        CalculationNumberResults calculation = bracketsCalculation2.calculation(s);
        System.out.println(calculation.getResult());
    }
}

        计算的时候有一些日志的产生,在resource文件夹下的log4j.xml文件中,设置了日志级别为INFO,因为有一些操作在日志中体现,我们看到“name”被注册到管理者中啦,这也是一个有趣的小设计,它将一个名字对应一个计算组件,使得计算组件可以像单例设计一样被复用,也可以被重新实例化 ,这里只是演示了一个计算功能啦,各位如果感兴趣,可以去试一下哦!!!

数学表达式解析的Java与Scala与python技术框架免费推荐_第2张图片

你可能感兴趣的:(技术推荐,scala,java,python,intellij-idea,github)