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有很多內置的數學函數和字符串函數,具體請看源碼學習

有點困了,暫時就說這些吧,以後有的話再補充,打算重點放在下篇多說一下自定義函數的實現

感謝閱讀,如有錯誤,請不吝指正,謝謝

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