java语言编写简易表达式_将简单的表达语言放入Java
小编典典
您可以看到如何传递所有参数:
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
engine.put("artist", artist);
...
您将使用读取回值
ScriptEngine.get(...)
粘合的最后一点是用函数声明包围用户的表达式,并编写一个调用函数并将结果分配给众所周知的变量的表达式。
因此,开始实验,让我们有一个功能来测试表达式:
private static void printResult(final ScriptEngine jsEngine, String name, String expr) throws ScriptException {
Object result = jsEngine.eval(expr);
System.out.println(name + " result: " + result + "; expr: " + expr);
}
现在让我们称之为:
public static void main(String[] args) throws Exception {
ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine jsEngine = sem.getEngineByName("JavaScript");
printResult(jsEngine, "Hello World", "'Hello World'");
printResult(jsEngine, "Simple Math", "123 + 456");
}
这将产生:
Hello World result: Hello World; expr: 'Hello World'
Simple Math result: 579.0; expr: 123 + 456
现在让我们尝试一下您的用例:
public static void main(String[] args) throws Exception {
ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine jsEngine = sem.getEngineByName("JavaScript");
String expr = "artist + '-' + album + (disktotal > 1 ? ('-D' + diskno) : '')";
jsEngine.put("artist", "U2");
jsEngine.put("album", "The Joshua Tree");
jsEngine.put("disktotal", 1);
jsEngine.put("diskno", 1);
printResult(jsEngine, "Single Disk", expr);
jsEngine.put("artist", "Tori Amos");
jsEngine.put("album", "To Venus and Back");
jsEngine.put("disktotal", 2);
jsEngine.put("diskno", 2);
printResult(jsEngine, "Muti-Disk", expr);
}
产生结果:
Single Disk result: U2-The Joshua Tree; expr: ...
Muti-Disk result: Tori Amos-To Venus and Back-D2; expr: ...
请注意,托里(Tori)的末尾是“ D2”。
2020-09-28
java语言编写简易表达式_将简单的表达语言放入Java相关推荐
- java sql编写教务系统_校园车辆管理系统的设计与实现 java+SqlServer
一. 论文(设计)的主要内容 本设计为校园车辆管理系统.该系统具备对临时车辆进行管理和对长期用户进行认证管理的功能,所有车辆可以使用车牌号码作为出入校的凭证.整套系统由以下模块构成,如图一所示: 图1 ...
- Java多线程编写简易飞机大战(一)
** Java多线程编写简易飞机大战(一) ** 利用多线程编写飞机大战,主要有3个关键: ①继承Thread类,重写run方法: ②线程工作代码在run方法中写: ③启动时,调用线程对象的start ...
- 用C语言编写一个Linux下的简单shell程序
这是一个简单的C程序,展示了如何进行系统调用执行logout cd ls pwd pid rm mkdir mv cp等命令,这是一个简单的命令解释程序shell,其源代码如下: #include & ...
- C语言编写扫雷游戏,超简单
C语言编写扫雷游戏,超简单 1.扫雷游戏的流程 2.代码编写 3.总结 通过学习C语言的基础知识,基本上是理解了大部分内容,现在就通过所学的知识,写个简单的扫雷游戏,加深对基础知识的理解,正所谓实践是 ...
- antlr idea 入门_ANTLR入门:构建简单的表达语言
antlr idea 入门 这是该系列的第一篇文章. 本系列的目的是描述如何创建有用的语言和所有支持工具. 在本文中,我们将开始研究一种非常简单的表达语言. 我们将在语言沙箱中构建它,因此我们将其称为 ...
- ANTLR入门:构建一种简单的表达语言
这是该系列的第一篇文章. 本系列的目的是描述如何创建有用的语言和所有支持工具. 在本文中,我们将开始研究一种非常简单的表达语言. 我们将在语言沙箱中构建它,因此我们将其称为语言Sandy . 我认为工 ...
- 新手学java还是python知乎_编程初学者应该先学C++、Java还是Python?
最近,看到这样的一个话题:"打算自学编程,但是不知道该先学哪门语言入门?编程初学者应该先学C++.Java还是Python?",作为一个新手,应该学什么语言入门比较好呢?相信这是困 ...
- ZeptoN正在将程序放入Java
1.简介 Java编程语言或" Java"于1995年引入.然而,在近25年的时间里,它增加了最初不是核心语言所具有的功能. 此类功能包括枚举,泛型,对基本C样式功能开关语句的许多 ...
- java中的el表达式_简单介绍Java中的EL表达式(图)
EL全名为Expression Language,这篇文章主要给大家介绍EL表达式的主要作用及内容简介,感兴趣的朋友一起看看 JSP页面中支持使用EL表达式,EL全名为Expression Langu ...
最新文章
- Vmware Vcenter 5.1 部署安装过程 part 4 vmware vcenter 安装步骤
- JMS学习八(ActiveMQ消息持久化)
- java 把文件转化为字节数组
- 16.对极几何——极线约束,收敛相机,平行图像平面,两个立体对 测验_2
- c语言调用子程序,哪位师傅知道51单片机怎样编写子程序?C语言的。在主程序里调...
- [数据结构与算法] : 栈的链式实现
- 给新手开店选品的建议
- (转)内存整理的原理 整理自CSDN
- zuc算法代码详解_ZUC算法了解
- 用JSON-server模拟REST API
- html中header怎么设置,HTML中的header标签怎么用?
- VMware9 绿色破解版 下载地址
- 用python证明给定范围的欧拉常数
- 高级转录组分析和R数据可视化火热报名中(2022.10)
- java求两个非零正整数的最大公约数和最小公倍数
- HTML——3D移动、3D透视、3D效果、3D呈现案例效果
- SQL对时间的操作,比如在当前时间上增加减少一天,在当前的时间上增加减少一个月
- vs用html制作表格,演练:在 Visual Web Developer 中编辑 HTML 表格
- ASP.NET MVC 音乐商店 - 目录
- 网易考拉规则引擎平台架构
热门文章
- java构造方法的书写和注意事项(入门可看)
- C++中的静态绑定与动态绑定
- linux查看网络带宽_每天一个Linux命令之~wget命令
- ResNet、Faster RCNN、Mask RCNN是专利算法吗?盘点何恺明参与发明的专利
- 还原时代原声,AI修复老北京再次火爆全网
- linux 如何切换jdk的版本
- wangEditor 上传文件
- javaWeb引入相关的jar
- int main(int argc,char *argv[]),主函数的参数问题
- 脚本控制向Android模拟拨打电话,发送短信,定位设置功能