`
linliangyi2007
  • 浏览: 1012956 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

发布IK Expression开源表达式解析器 V2.1.0

阅读更多
Version2.1的变更:

 新增org.wltea.expression.ExpressionEvaluator. preparedCompile(String expression ,  Collection<Variable> variables)方法和类org.wltea.expression.PreparedExpression用来支持表达式预编译。用户可以像处理SQL语句那样,对需要循环执行的相同表达式进行预编译处理,而后设置不同的执行参数,得到不同的计算结果。详见”API说明”.
	/**
	 * Hello World Example
	 * @param args
	 */
	public static void main(String[] args){
		if(args.length == 0){
			args = new String[1];
			args[0] = "IK Expression V2.0.5";
		}
		//定义表达式
		String expression = "\"Hello \" + 版本";
		//给表达式中的变量 [版本] 付上下文的值
		List<Variable> variables = new ArrayList<Variable>();
		variables.add(Variable.createVariable("版本", args[0]));
		
		//预编译表达式
		PreparedExpression pe  = ExpressionEvaluator.preparedCompile(expression, variables);
		//执行表达式
		Object result = pe.execute();
		System.out.println("Result = " + result);
		
		//更改参数,再次执行预编译式
		pe.setArgument("版本", "IK Expression V2.0.6");
		result = pe.execute();
		System.out.println("Result = " + result);
		
	}	



 修订了对声明为Object类型的参数传入Integer、Double、String等类型的值时,会抛出类型不匹配异常的问题。原来版本中,参数必须显式申明为DATATYPE_OBJECT类型,新版本则不需要,所有java类型默认继承于Object。

 修改了ExpressionEvaluator的两个compile方法,不再抛出IllegalExpressionException异常,而改为运行期异常,以简化用户编码。


下载地址:
IKExpressionV2.1.0完整压缩包
IKExpressoin简易表达式引擎V2.1.0使用说明.pdf

google code开源地址:http://code.google.com/p/ik-expression/

更多详细请参阅RAR包内的《IKExpressoin简易表达式引擎V2.1.0使用说明.doc》文档




分享到:
评论
15 楼 a78113534 2015-08-01  
感谢大神,在安卓里面调用成功了。
14 楼 linliangyi2007 2009-09-24  
nick216 写道
还想请教一下:
Object result = ExpressionEvaluator.evaluate("$ABS(-2+3.0)+3");
		System.out.println("Result = " + result);

这句我可以执行
Object result = ExpressionEvaluator.evaluate("$ABS(-2+3)+3");
		System.out.println("Result = " + result);

这句我就报错?


你的问题可能是double类型与int类型的兼容问题,已经修正,请到这里下载新版本:IK Expression V2.1.1
13 楼 linliangyi2007 2009-09-24  
nick216 写道
还想请教一下:
Object result = ExpressionEvaluator.evaluate("$ABS(-2+3.0)+3");
		System.out.println("Result = " + result);

这句我可以执行
Object result = ExpressionEvaluator.evaluate("$ABS(-2+3)+3");
		System.out.println("Result = " + result);

这句我就报错?


给我你的$ABS的声明,以及报的异常,谢谢
12 楼 nick216 2009-09-24  
也想朋友们推荐另外一个开源项目
jeval
我觉得也不错
除了不知道“?”运算以外

11 楼 nick216 2009-09-24  
还想请教一下:
Object result = ExpressionEvaluator.evaluate("$ABS(-2+3.0)+3");
		System.out.println("Result = " + result);

这句我可以执行
Object result = ExpressionEvaluator.evaluate("$ABS(-2+3)+3");
		System.out.println("Result = " + result);

这句我就报错?
10 楼 linliangyi2007 2009-09-24  
nick216 写道
为什么JDK版本这么高
1.6?
搞的我不能直接只用

楼主不用1.4的,最起码用个1.5吧
哎。。。


抱歉抱歉,关键是公司的开发环境统一1.6了,不好切换的说,而且1.6的性能和新特性还是很不错的
9 楼 nick216 2009-09-24  
为什么JDK版本这么高
1.6?
搞的我不能直接只用

楼主不用1.4的,最起码用个1.5吧
哎。。。
8 楼 linliangyi2007 2009-09-16  
dongfengpo25 写道
哦,可以了,无好意思啊. 可能是包没有应用好.
现在可以传值了.
谢谢!!!


哈哈,那就好,那就好,这个很正常,我自己也常常被这种问题困扰,呵呵。
有问题希望多反馈,项目才能进步。
7 楼 dongfengpo25 2009-09-16  
哦,可以了,无好意思啊. 可能是包没有应用好.
现在可以传值了.
谢谢!!!
6 楼 linliangyi2007 2009-09-15  
dongfengpo25 写道
例如:
定义: ... Max(Object a,Object b)....
替换: Max() --- $Max
配置: <function name="MaxEx" method="MaxEx">
<parameter-type>java.lang.Object</parameter-type>
<parameter-type>java.lang.Object</parameter-type>
      </function>
调用: Max(1000,0.0)

这样子应该可以了吧


这个应该可以啊,要不你试试我上面的代码,应该是一样的。(有点怀疑你的jar包没更新)

不知道还有人有这样的问题啵,给点反馈啊。
5 楼 dongfengpo25 2009-09-15  
例如:
定义: ... Max(Object a,Object b)....
替换: Max() --- $Max
配置: <function name="MaxEx" method="MaxEx">
<parameter-type>java.lang.Object</parameter-type>
<parameter-type>java.lang.Object</parameter-type>
      </function>
调用: Max(1000,0.0)

这样子应该可以了吧
4 楼 linliangyi2007 2009-09-15  
dongfengpo25 写道
版本是2.1的,然后定义一个函数,参数为OBJECT,传值类型为0.0,就报出错误,如上.


兄弟,给点代码和配置好伐?你这么说跟没说有啥区别啊

本人测试一下代码,没有你说的问题啊!

	/**
	 * Hello World Example
	 * @param args
	 */
	public static void main(String[] args){
		//定义表达式
		
		String expression = "$问好(数字类型)";
		//给表达式中的变量 [用户名] 付上下文的值
		List<Variable> variables = new ArrayList<Variable>();
		variables.add(new Variable("数字类型" , DataType.DATATYPE_OBJECT , new Integer(0)));
		//执行表达式
		PreparedExpression pe  = ExpressionEvaluator.preparedCompile(expression, variables);
		System.out.println("Result = " + pe.execute());
		
		pe.setArgument("数字类型", new Float(100));
		System.out.println("Result = " + pe.execute());		
		
		pe.setArgument("数字类型", new Double(100));
		System.out.println("Result = " + pe.execute());
		
		Object result = null;  
		result = ExpressionEvaluator.evaluate("$问好(1.0)");     
		System.out.println("Result = " + result);     
		result = ExpressionEvaluator.evaluate("$问好(1)");     
		System.out.println("Result = " + result);  
		
	}	



	<bean class="org.wltea.expression.test.TestFunctions">
		<function name="问好" method="sayHello">
			<parameter-type>java.lang.Object</parameter-type>
		</function>
	</bean>
3 楼 dongfengpo25 2009-09-15  
版本是2.1的,然后定义一个函数,参数为OBJECT,传值类型为0.0,就报出错误,如上.
2 楼 linliangyi2007 2009-09-14  
dongfengpo25 写道
还是会出现类似问题啊?

函数参数类型不匹配,函数类型为:java.lang.Object 传入参数类型为:double


能说的细一些嘛?
又或者是你版本下的不对?
1 楼 dongfengpo25 2009-09-14  
还是会出现类似问题啊?

函数参数类型不匹配,函数类型为:java.lang.Object 传入参数类型为:double

相关推荐

    IK Expression开源表达式解析器 V2.1.2.rar

    IK Expression开源表达式解析器V2.1.2是一款用于处理和解析文本表达式的强大工具,广泛应用于各类软件开发和数据分析场景。它以其高效、灵活和可扩展性著称,为开发者提供了便捷的方式来处理和执行复杂的逻辑表达式...

    IK Expression(表达式引擎)

    IK Expression 是一个开源的(OpenSource),可扩展的(Extensible), 基于java 语言开发的一个超轻量级(Super lightweight)的公式化语言解析执行 工具包。它是一个采用逆波兰式算法结合指针栈优化的公式解析引擎...

    IKExpressoin_简易表达式引擎_V2.1.0_使用说明.pdf

    IK Expression是一个开源的(OpenSource),可扩展的(Extensible),基于java语言开发的一个超轻量级(Super lightweight)的公式化语言解析执行工具包。

    IKExpressoin简易表达式引擎V2.1.0使用说明.rar_IKExpressoin_V2 _ik表达式

    在IKExpression V2.1.0中,开发者可以定义自己的表达式语言,这些语言可以用于计算数值、控制流程、访问对象属性、调用方法等。这种功能使得它成为业务逻辑配置、规则引擎、动态脚本等场景的理想选择。 ...

    IKExpressoin简易表达式引擎V2.1.0使用说明

    ### IKExpression简易表达式引擎V2.1.0使用说明 #### 1. IK表达式介绍(IKExpressionIntroduction) **IKExpression** 是一款基于 Java 的开源、可扩展且超轻量级的公式化语言解析执行工具包。它不依赖于任何第三...

    IKExpression表达式解析器

    IK Expression是一个开源的(OpenSource),可扩展的(Extensible),基于java语言开发的一个超轻量级(Super lightweight)的公式化语言解析执行工具包。 IK ExpressionV2.0.5不依赖于任何第三方的java库。它做为一...

    表达式解析器 IKExpression

    IK Expression是一个开源的(OpenSource),可扩展的(Extensible),基于java语言开发的一个超轻量级(Super lightweight)的公式化语言解析执行工具包。 IK ExpressionV2.X.X不依赖于任何第三方的java库。它做为一...

    IK Expression V2.0

    IK Expression是一个开源的(OpenSource),可扩展的(Extensible),基于java语言开发的一个超轻量级(Super lightweight)的公式化语言解析执行工具包。 IK Expression V2.0不依赖于任何第三方的java库。它做为...

    ik-expression源代码

    IK Expression是一个开源的(OpenSource),可扩展的(Extensible),基于java语言开发的一个超轻量级(Super lightweight)的公式化语言解析执行工具包。 IK ExpressionV2.0不依赖于任何第三方的java库。它做为一...

    基于java的表达式运算IK Expression

    IK Expression 是一个开源的(OpenSource),可扩展的(Extensible), 基 于java 语言开发的一个超轻量级(Super lightweight)的公式化语言解析执行 工具包。IK Expression 不依赖于任何第三方的java 库。它做为一...

    IKExpression技术 运算表达式完美解析

    为了便于理解和使用,还提供了"IKExpressoin简易表达式引擎V2.1.0使用说明.pdf"文档,详细介绍了API的使用方法和示例代码,帮助初学者快速上手。 配置文件"IKExpression.cfg.xml"可能包含了IKExpression的配置参数...

    Elasticsearch的开源中文分词器 IK Analysis.zip

    IK中文分词器在Elasticsearch上的使用。原生IK中文分词是从文件系统中读取词典,es-ik本身可扩展成从不同的源读取词典。目前提供从sqlite3数据库中读取。es-ik-plugin-sqlite3使用方法: 1. 在elasticsearch.yml中...

    IKAnalyzer开源轻量级中文分词工具包2012u6

    IK Analyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始, IKAnalyzer已经推出了4个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文...

    IKAnalyzer中文分词器v2012使用手册.pdf

    标题:"IKAnalyzer中文分词器v2012使用手册" 所述的知识点包括: IKAnalyzer是一款开源的基于Java语言开发的轻量级中文分词工具包,最早版本于2006年12月发布。作为一个文本分析组件,它最初是作为开源项目Lucene的...

    IK智能分词器下载8.12.2版本

    IK智能分词器下载8.12.2版本IK智能分词器下载8.12.2版本IK智能分词器下载8.12.2版本IK智能分词器下载8.12.2版本IK智能分词器下载8.12.2版本IK智能分词器下载8.12.2版本IK智能分词器下载8.12.2版本IK智能分词器下载...

    elasticsearch的ik中文分词器

    **Elasticsearch与IK中文分词器** Elasticsearch(ES)是一款强大的开源搜索引擎,它基于Lucene构建,提供实时、分布式、可扩展的搜索和分析能力。在处理中文文档时,由于中文句子中词语之间没有明显的分隔符,因此...

    IKAnalyzer中文分词器V3.2使用

    **IKAnalyzer中文分词器V3.2使用详解** IKAnalyzer是一款开源的、适用于Java环境的中文分词器,主要用于解决在信息检索、文本挖掘等领域中遇到的中文处理问题。这款分词器的设计目标是提高分词的准确率,并且具有...

    IKAnalyzer中文分词器V2012使用手册_20190806.pdf

    IKAnalyzer是一个开源的中文分词器,基于Java语言开发,它是一个轻量级的中文分词工具包。IKAnalyzer自2006年12月推出1.0版本以来,已经发展到了2012版本。这个分词器最初是基于开源项目Lucene的词典分词和文法分析...

    IK Analyzer 开源中文分词 2012 u6.zip

    IK Analyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版开始, IKAnalyzer已经推出了4个大版本。最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文...

    IK 的jar包

    IK是开源的中文分词组件,全称为"Intelligent Chinese Analyzer for Java",它主要针对Java平台设计,广泛应用于各种中文处理场景,如搜索引擎、文本分析等。在本压缩包中,"IKExpressionV2.1.2AllInOne"表示的是IK...

Global site tag (gtag.js) - Google Analytics