【发布时间】:2011-08-27 00:56:00
【问题描述】:
在 Java 中,如果我有一个字符串:
String abc = "(5)*(2+2)/(2)";
我怎样才能得到abc = 10的结果?
【问题讨论】:
-
@Touko:这个问题仅限于 JVM 1.5 解决方案。
标签: java
在 Java 中,如果我有一个字符串:
String abc = "(5)*(2+2)/(2)";
我怎样才能得到abc = 10的结果?
【问题讨论】:
标签: java
import javax.script.*;
public class EvalScript {
public static void main(String[] args) throws Exception {
// create a script engine manager
ScriptEngineManager factory = new ScriptEngineManager();
// create a JavaScript engine
ScriptEngine engine = factory.getEngineByName("JavaScript");
// evaluate JavaScript code from String
Number number = (Number)engine.eval("(5)*(2+2)/(2)");
System.out.println("abc = " + number);
}
}
【讨论】:
Number number = (Number)engine.eval("(5)*(2+2)/(2)");而不是使用print语句吗?
这并不简单。你应该
您可以在ANTLR documentation 中找到一个简单的示例:第 2.1 节创建一个简单的语法,有一个带有基本算术表达式语法的 Java 示例。
【讨论】: