我試圖創建一個簡單的自然語言計算器,並且目前設法將所有操作數轉換爲雙精度和運算符爲字符'+',' - ' '*','/','%'。如何執行算術使用代表+ - * /%的字符
但是,我想使用正確的操作順序來評估表達式,爲此,如果在計算表達式時可以利用Java的自然順序操作,那將會非常有用。有沒有辦法計算這種包含字符操作數的表達式?我在想,也許我的程序可以編寫某種臨時的java類,編譯它並運行它來評估表達式,但這看起來有點過頭了。必須有一個更簡單的方法來做到這一點?
我試圖創建一個簡單的自然語言計算器,並且目前設法將所有操作數轉換爲雙精度和運算符爲字符'+',' - ' '*','/','%'。如何執行算術使用代表+ - * /%的字符
但是,我想使用正確的操作順序來評估表達式,爲此,如果在計算表達式時可以利用Java的自然順序操作,那將會非常有用。有沒有辦法計算這種包含字符操作數的表達式?我在想,也許我的程序可以編寫某種臨時的java類,編譯它並運行它來評估表達式,但這看起來有點過頭了。必須有一個更簡單的方法來做到這一點?
下面的鏈接顯示您如何評價給出字符串數學表達式: Evaluating a math expression given in string form
所以,你可以連接運營商與雙創建數學公式字符串並使用ScriptEngine的,如上面的鏈接評估。遵循的優先級可以通過適當地使用括號來改變。
您是否聽說過逆波蘭符號? – gaborsch
我聽說過它,但我不太瞭解它。在這種情況下它將如何有用?我不需要通過表達式來解析它以將其轉換爲後綴符號嗎? – a3onstorm
您可以將您的中綴表達式轉換爲後綴表達式(RPN)(例如,通過推薦的調車碼算法),然後對其進行評估。 – gaborsch