In Java, if I have a string:
String abc = "(5)*(2+2)/(2)";
How could I get the result of abc = 10
?
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);
}
}
It's not straightforward. You should
You can find a simple example in ANTLR documentation: section 2.1 Create a simple grammar, has a Java example with a grammar for basic arithmetic expressions.