我正在做一個計算器,它應該接收輸入爲一個字符串,然後執行計算,輸出結果。如何解決在java中的計算
例如,輸入可以是
((23+17) mod 7 × 4 AND 13
和輸出將是4
,如所預期。
如何解析輸入,提取所有操作數並執行計算?
我正在做一個計算器,它應該接收輸入爲一個字符串,然後執行計算,輸出結果。如何解決在java中的計算
例如,輸入可以是
((23+17) mod 7 × 4 AND 13
和輸出將是4
,如所預期。
如何解析輸入,提取所有操作數並執行計算?
其他的答案只是「如何將一個變量設置爲這樣的結果」,但如果你實際上是在尋找解析輸入,你應該參考這個:
Equation (expression) parser with precedence?
有許多的解決這類問題的方法,以及一些用於這樣做的算法。其中一些基於堆棧,一些執行「樹」的下降,我甚至可以想到一個(有點)令人費解的方式來OOP化它。我會從上面的鏈接開始。
我知道關於邏輯運算符我必須處理一個字符串 – wasp256
您可以使用正則表達式來解析字符串。
http://docs.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html
首先,你必須尋找像最重要的參數[() - 括號],再少[* /]和[+ - ]。你必須把整個字符串分成幾部分。
例子:
Simple calculator (bottom of the page)
無論在Java中。
你知道在Java中存在模運算符嗎?尋找它.. – Maroun
我會建議使用數學來解決這樣的計算。此外,如果您正在嘗試這樣做,則確定'AND'代表的是什麼,這非常重要。 – SubSevn
您對Java語言感到滿意嗎? 我假設沒有。可能花費更少的精力在Google上找到答案。 – dharam