0
我知道有很多關於解析數學表達式的問題。我研究並學習了將中綴字符串轉換爲後綴的算法,並使用後綴字符串來計算表達式的值。當操作數包含多個字符時解析表達式?
但是我發現的所有例子都只處理表達式的操作數僅包含一個字符的情況。例如「1 + 2」。
如果表達式爲「1 + 123」,該怎麼辦?後綴字符串將變成「1123+」,因此無法進行評估。
我想過的方法是從中綴字符串中讀取操作數的每個字符,並暫時將它們保存在tempStack中。並且,讀取操作符時,將tempStack中的操作數轉換爲整數,然後將其推入後綴數組中。
但是接下來的問題是,我的操作數是整型,但我的操作符是字符類型。所以我不能把它們放在同一個陣列中。
請爲我提供正確的方法。我知道有API來完成這項工作,但我想學習這些以加強我的知識。
非常感謝。
你在找什麼是[運算符優先解析器](http://en.wikipedia.org/wiki/Operator-precedence_parser)。或者使用兩個堆棧,一個用於操作數,另一個用於操作員。 – 2012-01-13 12:50:18