java 表达式解析器

这是一个使用Java编写的表达式解析器,支持算术、逻辑、比较运算,以及if分支结构和自定义函数。数据类型包括数字、日期、布尔、字符和字符串。日期转化为Calendar对象,变量类型在赋值后不可改变。解析器提供系统函数如abs、max和自定义函数功能,通过Expression的evaluate()方法执行表达式。
摘要由CSDN通过智能技术生成

本表达式解析器使用java语言实现。

支持算术运算、逻辑运算、比较运算,

支持if分支结构的解析,

支持在表达式中使用自定义函数,

支持多种数据类型:数字、日期、字符、字符串、布尔。


(源码和文档见我的资源:Expression_Analyzer_Reference  不需积分)


首先简单介绍表达式解析器的词法规则

  • 数据类型

支持五种数据类型:数字、日期、布尔、字符、字符串

  • 数字

数字类型在解析过程中将被转化成BigDecimal类型,支持以下格式:

整数123;

小数123.333;

指数1.2E2 或 1.2e2(即120)

  • 日期

支持两种形式的日期数据,一种是精确到日的,写法为[yyyy-MM-dd],如[2012-03-31];另一种精确到秒,写法为[yyyy-MM-dd HH:mm:ss],如[2012-03-31 09:06:10]。

在表达式解析过程中日期类型将转化为java.util.Calendar。

  • Boolean

布尔常量的写法可以是true、TRUE、false、FALSE。

字符

字符分普通字符和转义字符。

普通字符:’a’、’_’

转义字符:’\n’、’\r’

  • 字符串

字符串用双引号表示,可包含转义字符,如”Hello World”、”Hello \r\n World”。

变量

变量名以字母或下划线开头,只能包含字母、数字、下划线,如:abc、_abc、_a1。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值