我試圖從它的括號分裂Java中
例如分割一個簡單的數學表達式數學表達式:(8+(3(2+3)(4-1)))
分離到的小表情像(2+3), (4-1), (3*5*3), and finally (8+45)
。
我試着在這裏看Splitting an expression,但由於它是在Python中,我不知道如何在Java中實現它。
是否有人可以幫助我..
我試圖從它的括號分裂Java中
例如分割一個簡單的數學表達式數學表達式:(8+(3(2+3)(4-1)))
分離到的小表情像(2+3), (4-1), (3*5*3), and finally (8+45)
。
我試着在這裏看Splitting an expression,但由於它是在Python中,我不知道如何在Java中實現它。
是否有人可以幫助我..
你居然要「分」,它還是你只是需要評估呢?直接評估它更容易。
這是我的問題的答案......
Parsing an arithmetic expression and building a tree from it in Java
只是一個建議 使用arithmatic表達式樹來解決這個問題。我已經完成了這個使用C#,如果你有興趣我可以給的方法
我認爲dijkstra的分流碼算法可能會幫助你,它的目的是解決中綴表示法。您可以採取中間結果來獲取您要查找的表達式。
http://en.wikipedia.org/wiki/Shunting-yard_algorithm
C例程代碼包含,這會幫助你,因爲它是類似於Java。
如果您只是想評估表達式,請看[this](http://stackoverflow.com/questions/3422673/evaluating-a-math-expression-given-in-string-form)和[這](http://stackoverflow.com/questions/1432245/java-parse-a-mathematical-expression-given-as-a-string-and-return-a-number)後 –
這不只是'拆分從括號中引出一個簡單的數學表達式'。這被稱爲「解析」和「評估」。這比「分裂」要複雜得多。例如,即使在內部乘法周圍沒有括號,你也需要能夠正確評估'(8 + 3(2 + 3)(4-1))'。 – EJP
[Equation(expression)parser with precedence?]的可能重複項(http://stackoverflow.com/questions/28256/equation-expression-parser-with-precedence) – EJP