精华帖 (0) :: 良好帖 (3) :: 新手帖 (4) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-10-03
最后修改:2009-10-03
1.根据网友提出的要求,修订了对未声明变量的处理,早期版本不允许变量未申明,将抛出异常。新版本将未申明变量视为 null,这样解决了上下文中对不存在的变量的判断问题,如 “variable == null”将返回 true。 下载地址: IKExpressionV2.1.2 完整发布包 IKExpressoin简易表达式引擎V2.1.0使用说明.pdf google code开源地址:http://code.google.com/p/ik-expression/ 更多详细请参阅RAR包内的《IKExpressoin简易表达式引擎V2.1.0使用说明.doc》文档 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-10-10
String text = "薇欧薇VOV化妆调肤粉底液(2色)普通装规格另见包装";
String keyword = "粉底乳"; 使用官方3.1.1PDF中的例子,居然不能命中。。 第一次使用,程序中如何写才能命中这句? |
|
返回顶楼 | |
发表时间:2009-10-10
gtman 写道 String text = "薇欧薇VOV化妆调肤粉底液(2色)普通装规格另见包装";
String keyword = "粉底乳"; 使用官方3.1.1PDF中的例子,居然不能命中。。 第一次使用,程序中如何写才能命中这句? 兄弟,你发错帖子了吧 ![]() |
|
返回顶楼 | |
发表时间:2009-11-12
楼主~
我发现我对不同数据类型的字符串连接:“ABC”+(123+10),会报错。。 代码如下: public static void main(String[] args) { // TODO Auto-generated method stub String expression = "ABC+(123+10)"; Object result=ExpressionEvaluator.evaluate(expression, null); System.out.println("Result=" + result); } 报错如下: 表达式不合法,变量"ABC"缺少定义;位置:0 处理对象:ABC 处理位置:0 at org.wltea.expression.ExpressionExecutor.convertToRPN(ExpressionExecutor.java:85) at org.wltea.expression.ExpressionEvaluator.evaluate(ExpressionEvaluator.java:43) at com.sunyard.expression.operate.TestOne.main(TestOne.java:22) Exception in thread "main" java.lang.RuntimeException: 表达式:"ABC+(123+10)" 执行异常 at org.wltea.expression.ExpressionEvaluator.evaluate(ExpressionEvaluator.java:52) at com.sunyard.expression.operate.TestOne.main(TestOne.java:22) |
|
返回顶楼 | |
发表时间:2009-11-12
然后,我定义了String ABC="ABC";
String expression = ABC+"(123+10)"; 也报类型的错。。 |
|
返回顶楼 | |
发表时间:2009-11-12
Xiehgjava 写道 楼主~
我发现我对不同数据类型的字符串连接:“ABC”+(123+10),会报错。。 代码如下: public static void main(String[] args) { // TODO Auto-generated method stub String expression = "ABC+(123+10)"; Object result=ExpressionEvaluator.evaluate(expression, null); System.out.println("Result=" + result); } 报错如下: 表达式不合法,变量"ABC"缺少定义;位置:0 处理对象:ABC 处理位置:0 at org.wltea.expression.ExpressionExecutor.convertToRPN(ExpressionExecutor.java:85) at org.wltea.expression.ExpressionEvaluator.evaluate(ExpressionEvaluator.java:43) at com.sunyard.expression.operate.TestOne.main(TestOne.java:22) Exception in thread "main" java.lang.RuntimeException: 表达式:"ABC+(123+10)" 执行异常 at org.wltea.expression.ExpressionEvaluator.evaluate(ExpressionEvaluator.java:52) at com.sunyard.expression.operate.TestOne.main(TestOne.java:22) 哈哈,你漏了一层的引号啊。 String expression = "ABC+(123+10)",这个对于表达式而言,等价于 ABC+(123+10);ABC没有引号,表达式将认为这个是你声明的变量。 你希望的表达式要写成 String expression = "\"ABC\"+(123+10)" |
|
返回顶楼 | |
发表时间:2009-11-12
Xiehgjava 写道 然后,我定义了String ABC="ABC";
String expression = ABC+"(123+10)"; 也报类型的错。。 汗死,你这个定义的是java变量啊,你要设置到表达式上下文中啊,看一下文档吧 |
|
返回顶楼 | |
发表时间:2009-11-12
linliangyi2007 写道 Xiehgjava 写道 然后,我定义了String ABC="ABC";
String expression = ABC+"(123+10)"; 也报类型的错。。 汗死,你这个定义的是java变量啊,你要设置到表达式上下文中啊,看一下文档吧 啊,原来如此,谢谢楼主~~~楼主回贴真及时,谢谢!! |
|
返回顶楼 | |
发表时间:2009-11-12
我这边刚好需要对数据进行处理,然后想以表达式的形式记录每个字段的处理方式,以后该字段就根据这个表达式来进行自动的处理。
当然这个表达式有业务人员来配置,我只用关注需要抽象出来的方法即可,不知道楼主有没有什么好的建议可以借鉴一下么? ![]() |
|
返回顶楼 | |
发表时间:2009-11-12
Xiehgjava 写道 我这边刚好需要对数据进行处理,然后想以表达式的形式记录每个字段的处理方式,以后该字段就根据这个表达式来进行自动的处理。
当然这个表达式有业务人员来配置,我只用关注需要抽象出来的方法即可,不知道楼主有没有什么好的建议可以借鉴一下么? ![]() 从你的描述上看,IK应该适用。我们这边的OA也是这么用的 |
|
返回顶楼 | |