输入像1+(2+3)+(4+5)这样的怎么得到结果15

解决方案 »

  1.   

    用MVEL吧,MVEL你可以理解成Javascript中的EVAL。 
    String str = "1+(2+3)+(4+5)";
    system.out.println(MVEL.eval(str)); 
      

  2.   

    scare -> ( scare )
    scare -> scare oper scare
    scare -> 数字
    oper -> + | - | * | /oper要考虑优先级!
      

  3.   

    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.util.Scanner;import javax.script.ScriptEngine;
    import javax.script.ScriptEngineManager;public class EvalExpression
    {
    public static void main(String[] args)
    {
    try
    {
    BufferedReader  b  = new BufferedReader(new InputStreamReader(System.in));
    System.out.println("please input your expression:");
    String exp = b.readLine();
    ScriptEngineManager factory = new ScriptEngineManager();
    ScriptEngine eng = factory.getEngineByName("javascript");
    System.out.println(eng.eval("eval(" + exp + ")")); 
    } catch (Exception ex)
    {
    ex.printStackTrace();
    }
    }}