拆分用栈试试。也可以不拆分直接计算 ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine jsEngine = sem.getEngineByName("JavaScript");
try {
System.out.println((int)Double.parseDouble(jsEngine.eval("7-8*4").toString()));
} catch (ScriptException ex) {
ex.printStackTrace(System.err);
}
ScriptEngine jsEngine = sem.getEngineByName("JavaScript");
try {
System.out.println((int)Double.parseDouble(jsEngine.eval("7-8*4").toString()));
} catch (ScriptException ex) {
ex.printStackTrace(System.err);
}
解决方案 »
- 请问java中对于public的static何时可以删除,以及void的使用原则给介绍一下
- final对象的生命周期
- JAVA如何查询进程存在
- 初学java的问题
- 如何判断某个java程序已经启动?
- 做毕业设计遇到麻烦了,求各位大神帮帮忙!怎样将服务器中的list对象,发到各个客户端的线程里面。
- 初学者问题:IE6还支持JAVA虚拟机吗?
- 在Java中如何取得一个字符的ASCII码值?
- 求助,有知道知网(HowNet)在java中怎么使用的前辈进!
- 关于 java.lang.String 的 所谓的 实际上不是的 值传递
- 为什么报空指针错误呢
- 用NetBeans8.0.1启动tomcat7失败
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
engine.eval("var o=7-8*4 ;{println(o);}");
可以循环按位取判断是否“+-*/”,是的话截取出来存到数组或者list中,为了区分,运算符可以另存,然后在运算。