JAVA不直接支持动态解析文本文件中的表达式,只能通过手工拆分字符串再递归调用来实现,这需要编写大量代码,过程复杂难以维护。使用集算器来辅助Java编程,这些问题就不需要自己写代码了,下面我们通过例子来看一下具体作法。
文本文件formula.txt是tab分割的文本文件,第一行是列名,有3个列No、type、exp,其中exp列是公式。现在需要动态解析exp中的公式,并将计算结果附加在exp之后,命名为value列。文件fromula.txt的前几行数据如下:
集算器脚本如下:
A1:=file("E:\\ formula.txt").import@t(),函数import用来读入文本文件, 函数选项@t表示将第一行读为列名。读入后的数据存储在A1格中,如下:
A2:=A1.derive(eval(exp):value)。函数derive用来在A1中加入新的列,列名为value,列的值是eval(exp)。函数eval用来对字符串进行动态解析,比如eval(“1+1”)的计算结果是数字2。由于代码中的exp列是多个字符串组成的,因此eval(exp)的计算结果也是多个,如下:
动态公式已经解析完成,下面将A2输出到文本文件,即:
A3:=file("E:\\ result.txt").export@t(A2)
上述脚本中,函数export用来将A2中的数据写入文件result.txt,函数选项@t表示将列名写在第一行。打开这个文件,可以看到如下内容:
A4:result A2。这句脚本将A2中的数据返回JAVA。JAVA代码只需通过JDBC调用集算器脚本就能获得结果,代码如下。
//建立esProc jdbc连接
Class.forName("com.esproc.jdbc.InternalDriver");
con= DriverManager.getConnection("jdbc:esproc:local://");
//调用esProc,其中test是脚本文件名
st =(com.esproc.jdbc.InternalCStatement)con.prepareCall("call test()");
st.execute();//执行esProc存储过程
ResultSet set = st.getResultSet(); //获取结果集
相关推荐
结构化文本(ST)语言表面上与PASCAL语言很相似,但它是一个专门为工业控制应用开发的编程语言,具有很强的编程能力用于对变量赋值、回调功能和功能块、创建表达式、编写条件语句和迭代程序等。结构化文本(ST)非常...
接下来,我们介绍将文本数据(非结构化数据)转换为表示感兴趣变量(结构化数据)的数值度量的想法。 具体来说,我们介绍了基于字典的方法:1) 测量文档情绪,2) 计算文本复杂度,3) 识别前瞻性句子和风险披露,4) ...
1. 使用正则表达式验证邮箱格式:演示如何使用正则表达式验证邮箱地址的格式是否有效。 2. 读取和写入文本文件:展示了如何使用文件读取器和写入器来读取和写入文本文件的内容。 3. 使用日期和时间类:演示了Java 8...
前言 1 第1章 JavaScript概述 5 1.1 JavaScript语言核心 8 1.2 客户端JavaScript 12 第一部分 JavaScript 语言核心 第2章 词法结构 25 2.1 字符集 25 ...4.12 表达式计算 83 4.13 其他运算符 86
前言 1 第1章 JavaScript概述 5 1.1 JavaScript语言核心 8 1.2 客户端JavaScript 12 第一部分 JavaScript 语言核心 第2章 词法结构 25 2.1 字符集 25 ...4.12 表达式计算 83 4.13 其他运算符 86
本书介绍了正则表达式、有限状态自动机、文本-语音转换、发音与拼写的概率模型、词类自动标注、N元语法、隐马尔可夫模型、上下文无关语法、特征与合一、词汇化剖析与概率剖析、一阶谓词演算、词义排歧、修辞结构理论...
本书介绍了正则表达式、有限状态自动机、文本-语音转换、发音与拼写的概率模型、词类自动标注、n元语法、隐马尔可夫模型、上下文无关语法、特征与合一、词汇化剖析与概率剖析、一阶谓词演算、词义排歧、修辞结构理论...
随着计算机存储与计算能力的迅猛发展,越来越多的非结构化文本数据存储在数据库中,数据库中的文本搜索日益广泛。 当前,数据库中的文本搜索,一般采用SQL语句中的Like操作符或者采用数据库系统自带的全文索引功能...
本书介绍了正则表达式、有限状态自动机、文本-语音转换、发音与拼写的概率模型、词类自动标注、N元语法、隐马尔可夫模型、上下文无关语法、特征与合一、词汇化剖析与概率剖析、一阶谓词演算、词义排歧、修辞结构理论...
4.12 表达式计算83 4.13 其他运算符86 第5章 语句91 5.1 表达式语句92 5.2 复合语句和空语句92 5.3 声明语句94 5.4 条件语句96 5.5 循环101 5.6 跳转106 5.7 其他语句类型113 5.8 JavaScript...
2.5 结构化程序设计方法 31 3 数据类型、运算符与表达式 3.1 C语言的数据类型 32 3.2 常量与变量 33 23.2.1 常量和符号常量 33 3.2.2 变量 33 3.3 整型数据 34 3.3.1 整型常量的表示方法 34 3.3.2 整型变量 35 3.4 ...
由于需要在半结构化的文本数据中提取一些特定格式的字段、数据辅助挖掘分析工作,以往都是使用Matlab工具进行结构化数据处理的建模,matlab擅长矩阵处理、结构化数据的计算,Python具有与matlab共同的特点:语法...
类似地,在演示递归算法执行过程时,每当执行递归调用本过程的语句时,随即隐去当前层次的算法文本而显示下一层的算法文本,并且以不同颜色的算法文本表示递归的不同层次。如第一层的算法文本为深绿色,第二层为紫色...
GalvanizeU-纽黑文大学数据科学理学硕士DSCI-6004:非结构化数据和自然语言处理2016 年 10 月 24 日 - 12 月 16 日 目录: 后勤 课程说明 班级结构 课程要求 成绩 资源 后勤: 导师:布赖恩·斯皮林办公时间:星期三...
2.6.2 单链表处理的C语言源程序 习题二 第3章 栈和队列 3.1 栈 3.1.1 栈的定义及其运算 3.1.2 栈的顺序存储结构(向量) 3.1.3 栈的链表存储结构 3.1.4 栈的应用 3.2 队列 3.2.1 队列的定义及运算 3.2.2 ...
类似地,在演示递归算法执行过程时,每当执行递归调用本过程的语句时,随即隐去当前层次的算法文本而显示下一层的算法文本,并且以不同颜色的算法文本表示递归的不同层次。如第一层的算法文本为深绿色,第二层为紫色...