1
我已經使用EvalEx(https://github.com/uklimaschewski/EvalEx)並對其進行了修改,使其沒有像數學軟件包那樣的計算器。 所以現在它可以從用戶獲得字符串形式的輸入並打印出結果。評估在Java中包含變量的字符串形式的表達式
這樣的:
Enter an Expression: ADD(DIV(SIN(FACT(3)),CEIL(TAN(MUL(1.5,FIB(4))))),GCD(2,10))
The Result is: 1.94
現在用戶將進入包含變量而不是常量
ADD(DIV(SIN(FACT(X1)),CEIL(TAN(MUL(1.5,FIB(X2))))),GCD(Y,10))
和整體的代碼應該像下面運行時表達式:
Enter an Expression: ADD(DIV(SIN(FACT(X1)),CEIL(TAN(MUL(1.5,FIB(X2))))),GCD(Y,10))
Enter Variables: X1,X2,Y
Enter values for X1, X2 and Y by this order(separate the values by space): 3 4 2
The Result is: 1.94
請注意,用戶首先輸入表達式,然後告訴機器什麼是t他變量(如在「輸入變量:x1,x2,y」) 也我不得不使用客觀編程概念我可以更改EvalEx中的現有代碼以使程序識別變量嗎?
謝謝你的回答 但你能告訴我另一種方式,而無需使用map和hashmap嗎? 如果我可以通過更改EvalEx中的eval方法來做到這一點會好得多,因爲我應該避免使用包 實際上我正在尋找方法來使代碼在沒有任何準備好的軟件包(如地圖,數學等)的情況下工作(除必需類似java.lang的當然) – Vicarious
你不必使用'HashMap'。你可以使用一對數組來代替(一個'String []'用於變量名,一個'double []'用於相應的值)。但是我不知道你對「Map」有什麼反應 - 它在java.util中,所以它幾乎沒有異國情調!如果您希望我們幫助您修改「EvalEx」的代碼,您將不得不在該問題中包含該方法的代碼。 –
我沒有任何反對地圖 我剛開始學習java,所以我認爲這是一個包,我不應該使用 和這個鏈接到代碼,這基本上是它應該看起來像 https: //www.dropbox.com/sh/0zeqdc6sn5ouvcm/AAAdjl9XCf6TQrNqyu5wUCJTa?dl=0 – Vicarious