失去字符串形式的运算表达式结果

得到字符串形式的运算表达式结果


可能这个对一些人来说不值一提,但对新手应该还算是个惊喜。

import javax.script.*;

public static void main(String[] args) {

ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine se = sem.getEngineByName("js");
try {
System.out.println(se.eval("1+2*(3+5)"));
} catch (ScriptException e) {
e.printStackTrace();
}
}

这个效果是可以直接输出数值的17,也就是从string形式的四则运算得到数字答案。
1 楼 bitray 昨天  
你这是直接调用了js的引擎,利用js的eval函数了吧?这个java里也有一些el表达式解析组件。而且自己也可以开发一些简单的东西,基于逆波兰表达式的东西。不过你这个不用使用第三方组件。

如果有爱好可以用groovy,和java无缝衔接的。也能实现
2 楼 mike.liu 昨天  
是否支持变量、常量?
3 楼 逆天子军少 18 小时前  
mike.liu 写道
是否支持变量、常量?

支持的
4 楼 逆天子军少 18 小时前  
bitray 写道
你这是直接调用了js的引擎,利用js的eval函数了吧?这个java里也有一些el表达式解析组件。而且自己也可以开发一些简单的东西,基于逆波兰表达式的东西。不过你这个不用使用第三方组件。

如果有爱好可以用groovy,和java无缝衔接的。也能实现

恩,学习了失去字符串形式的运算表达式结果