java输入的也许很简单的问题,给200分吧
表达式求值: 
 30+3*(4-2.3)-3 
 这个式子,请问该怎么正确分解成为运算符和操作数? 
 我有个基本想法是:用DataInputStream来读一个byte,判断是否是数字,如果是,则放回流里面,然后以double形式重新读入一个。如果是字符,则是正常操作符。 
 如此直至读到末尾。 
 但这样做,我不知道怎么样把已经读入的字符放回流里面。   
 请教大家一个思路,谢谢!
------解决方案--------------------http://blog.csdn.net/CrazyGou/archive/2007/06/10/1646246.aspx
------解决方案--------------------某公司的一道面试题和这个问题是一样的,其实最简单的思路就是分解操作符,注意冗余设计就可以了。比如本题要求你计算1+1,你要考虑到01+10如何计算。说出这样的思路应该就是100分了。
------解决方案--------------------先消除括号,把括号用变量代替,再消除连续乘除,也用变量代替,最后剩下加减就好办了
------解决方案--------------------定一个!
------解决方案--------------------学学看看
------解决方案--------------------用正则表达式
------解决方案--------------------我也期待有更好的解决方法!!!
------解决方案--------------------学习
------解决方案--------------------学习
------解决方案--------------------请问正则表达式中的特殊构造中的 
 (?=X) (?!X) (? <=X) (? <!X) (?> X)是什么意思? 
 java的api中的解释看不明白
------解决方案--------------------路过。
------解决方案--------------------http://blog.csdn.net/CrazyGou/archive/2007/06/10/1646246.aspx 
 楼主看了吗?   
 分割字符串只一句正则: 
 String[] words = str.split( "(? <!^-?|[+/*()-]-)((? <=[+/*()-])|(?=[+/*()-])) "); 
 然后遍历words 
 if (words[i].matches( "-?\\d+|-?\\d+\\.\\d+ ")) {  //操作数 
 ... 
 } 
 else {  //操作符 
 ... 
 }
------解决方案--------------------不知道我是不是没有看明白题目,用正则式不是很好吗?
------解决方案--------------------顶了
------解决方案--------------------正则表达式。   
 去看看javacc。   
 下面是javacc中语法分析的正则表达式定义: 
 SKIP : 
 { 
    "  " 
 |  "\t " 
 |  "\n " 
 |  "\r " 
 |  < "// " (~[ "\n ", "\r "])* ( "\n "| "\r "| "\r\n ")>  
 |  < "/* " (~[ "* "])*  "* " (~[ "/ "] (~[ "* "])*  "* ")*  "/ ">  
 }   
 TOKEN : /* LITERALS */ 
 { 
    < INTEGER_LITERAL: 
          <DECIMAL_LITERAL>  ([ "l ", "L "])? 
       |  <HEX_LITERAL>  ([ "l ", "L "])? 
       |  <OCTAL_LITERAL>  ([ "l ", "L "])? 
   >  
 | 
    < #DECIMAL_LITERAL: [ "1 "- "9 "] ([ "0 "- "9 "])* >  
 | 
    < #HEX_LITERAL:  "0 " [ "x ", "X "] ([ "0 "- "9 ", "a "- "f ", "A "- "F "])+ >  
 | 
    < #OCTAL_LITERAL:  "0 " ([ "0 "- "7 "])* >  
 }   
 TOKEN : /* IDENTIFIERS */ 
 { 
    < IDENTIFIER:  <LETTER>  ( <LETTER> | <DIGIT> )* >  
 | 
    < #LETTER: [ "_ ", "a "- "z ", "A "- "Z "] >  
 |