日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 数学表达式解析插件_数学表达式解析-JAVA版

發布時間:2023/12/2 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 数学表达式解析插件_数学表达式解析-JAVA版 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 、工具介紹

String exp = “v>=10&&v<=2000&&v%10==0”;

在 js 中,能夠直接運行 eval 得到結果, java 中也可以!

在 java 中運行執行這種字符串格式數學表達式的方法:

1、

自己寫按照算法(逆波蘭)一個解析程序。

2、

使用第三方的工具。

1.jakarta commons JEXL. : Apache 出品,必屬精品。

2.Beanshell :動態語言,能夠很好與 spring 集成。

3.Java Math Expression Parser jep

4.parse combinator jparsec

5.JFormula:http://www.japisoft.com/formula/

6.jeval:http://www.javagg.com/diary/67916522

7.jdk 6.0 的 script : java 中比較著名的 js 引擎 -mozilla 開源的 rhino ,通過動態語言的 eval 實現。

8.IK Expression :官方介紹: IK Expression 是一個開源的( OpenSource) ,可擴展的( Extensible ),基于 java 語言開發的一個超輕量級( Super lightweight )的公式化語言解析執行工具包。嚴重推薦 :文檔很全,易用,如果有不懂的地方,可以直接去作者的 blog 用中文交流。

協議: GNU

8.MVEL : 很好用,極為簡單 ,和 BeanShell 一樣有自己的交互式環境: 。

使用教程:

語法環境:

模板:

能夠像 freemarker 、 velocity 一樣工作,雖然不專業功能也夠用了。

更新:

現在MVEL已經用到了google的MVC框架sitebricks中了,其中MVEL在sitebricks中地位類似ognl之于webwork。

協議: Apache 2.0 License

DEMO: ( IK Expression vs MVEL ):

IK Expression:

// 定義表達式

String expression = "v>=10&&v<=2000&&v%10==0" ;

// 給表達式中的變量 [ v ] 付上下文的值

List variables = new ArrayList();

variables.add(Variable. createVariable ( "v" , new Integer(10));

// 預編譯表達式

PreparedExpression pe = ExpressionEvaluator. preparedCompile (expression, variables)

// 執行表達式

Boolean result = (Boolean) pe.execute();

System. out .println( "Result = " + result.booleanValue()); // Result = true

// 更改參數,再次執行預編譯式

pe.setArgument( "v" , new Integer(11));

result = (Boolean) pe.execute();

System. out .println( "Result = " + result.booleanValue());// Result = false

MVEL :

//定義表達式

String expression = "v>=10&&v<=2000&&v%10==0";

Map vars = new HashMap();//參數環境表

// 給表達式中的變量 [ v ]賦值

vars.put("v", new Integer(10));

// 執行表達式,返回結果

Boolean result = (Boolean) MVEL.eval(expression, vars);

System. out .println( "Result = " + result.booleanValue());// Result = true

// 更改參數,再次執行預編譯式

vars.put("v", new Integer(10));

result = (Boolean) MVEL.eval(expression, vars);

System. out .println( "Result = " + result.booleanValue());// Result = false

2、

應用場景

通過數學公式的形式,

1、

適用于常規業務系統條件的動態配置。

2、

工作流的流程配置

總結

以上是生活随笔為你收集整理的java 数学表达式解析插件_数学表达式解析-JAVA版的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。