拆分用栈试试。也可以不拆分直接计算        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);
        }

解决方案 »

  1.   

    http://ximi82878.blog.hexun.com/22725230_d.html
      

  2.   

    直接算。
    ScriptEngineManager manager = new ScriptEngineManager();  
        ScriptEngine engine = manager.getEngineByName("js");     
        engine.eval("var o=7-8*4 ;{println(o);}");
      

  3.   

    你是单纯的10以内运算,还是不一定啊。
    可以循环按位取判断是否“+-*/”,是的话截取出来存到数组或者list中,为了区分,运算符可以另存,然后在运算。
      

  4.   

    计算器要用到设计模式:解释器模式,看看这篇文章http://blog.csdn.net/ljianhui/article/details/8297460