帮你顶一下吧。你的程序太乱了。为什么要用那个trim()的方法啊?看了一下API,那个方法好像很复杂。

解决方案 »

  1.   

    错误比较明显啊
    你是按照 “操作数+操作符”来解析的,12+,23*是对的,但(34是“操作符+操作数”
     s[k++] = s_temp.substring(begin, end); //begin==end,所以s[4]是""
      

  2.   

    因为你的*(都属于操作符,即连续的不满足if (! (c[i] >= '0' && c[i] <= '9'))这个条件,
    因此使得s_temp.substring(begin, end);中的begin和end相等,这样就相当于“”了!