jeval自带函数简单实现

上篇博客我大概说了jeval是啥,有啥优点,为啥选择他之类的问题,这篇我简单说一下jeval内置函数吧,知道是啥,然后会简单的使用,下篇博客我介绍一下jeval实现自定义函数。
闲言少叙,上代码

<!-- https://mvnrepository.com/artifact/net.sourceforge.jeval/jeval -->
		<dependency>
		    <groupId>net.sourceforge.jeval</groupId>
		    <artifactId>jeval</artifactId>
		    <version>0.9.4</version>
		</dependency>

上面是jeval的mavan 中心地址,基于mavan开发的同学可配置在自己的pom文件里把jar拉到本地仓库进行开发。
不是maven的就自己从mavan 中心仓库自己下载jar打到本地libraries

public class StringTest {
    public static void main(String[] args) {
        Evaluator evaluator = new Evaluator();
        try {
            System.out.println("1.-->"+evaluator.evaluate("1+2*3-2/1"));  //直接计算字符串型的数学表达式
            System.out.println("2.-->"+evaluator.evaluate("toUpperCase(trim( trim(' a b c ') ))"));  //运行java中的方法
            evaluator.putVariable("a", "'Hello'");//定义字符串变量
            evaluator.putVariable("b", "'World'");
            evaluator.putVariable("c", "1"); //定义数字变量
            evaluator.putVariable("d", "2");
            System.out.println("3.-->"+evaluator.evaluate("#{a}")); //输出字符串
            System.out.println("4.-->"+evaluator.evaluate("#{b}"));
            System.out.println("5.-->"+evaluator.evaluate("#{PI}"));
            System.out.println("6.-->"+evaluator.evaluate("#{a} + ' ' + #{b} + '!'")); //拼接后输出
            System.out.println("7.-->"+evaluator.evaluate("(#{c} + #{d}) - #{c}"));  //拼接后输出计算结果
            System.out.println("8.-->"+evaluator.evaluate("(#{c} + #{d}) + '!'"));  //拼接后输出计算结果

        } catch (EvaluationException ee) {
            System.out.println(ee);
        }
    }

这个测试类是我从其他地方copy过来的,具体哪里拷贝的记不清了,我发现好多介绍jeval的博客都用的是同样的测试类。。。
这里让我写测试类的话也是和上面的类似,本着能偷懒就偷懒的原则,就借鉴一下吧。

输出结果如下:

1.-->5.0
2.-->'A B C'
3.-->'Hello'
4.-->'World'
5.-->3.141592653589793
6.-->'Hello World!'
7.-->2.0
net.sourceforge.jeval.EvaluationException: Expression is invalid.

这些测试基本一看就懂,我主要说一下注意事项吧:

  1. jeval默认是单引号’作为字符串的引号的,字符串传参必须带单引号
  2. 数字和字符串不能出现在操作符两侧,比如上面的8 就不能正常运行
  3. jeval有很多内置的数学函数和字符串函数,具体请看源码学习

有点困了,暂时就说这些吧,以后有的话再补充,打算重点放在下篇多说一下自定义函数的实现

感谢阅读,如有错误,请不吝指正,谢谢

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章