如何在控制檯中插入三角函數以進一步處理它?例如,sin(x)= 2x + 3log(y)或類似的東西。我想..我需要輸入一個表達式作爲字符串,然後它被處理爲。但是如何?在Java中評估三角函數表達式
2
A
回答
3
看看exp4j
我們已經在我們的項目的一個廣泛使用這個庫解決你所面臨的相同問題。
Expression e = new ExpressionBuilder("3 * sin(y) - 2/(x - 2)")
.variables("x", "y")
.build()
.setVariable("x", 2.3)
.setVariable("y", 3.14);
double result = e.evaluate();
你的具體情況,您可以要求用戶在控制檯下面輸入,並使用這些輸入構建表達:
- 輸入要計算的表達式。這將成爲ExpressionBuilder構造函數的參數。
- 輸入代表表達式中變量的字符串。這將成爲變量方法的輸入。您可以將這些字符串作爲鍵添加到可用於下一步的Map中。
- 輸入每個變量的值。這將成爲setVariable方法的輸入。您可以收集所有變量值作爲上述步驟中創建的地圖中的值。你可以在地圖上迭代並調用setVariable(key,value),這樣你就不需要事先知道表達式中有多少變量。
1
嘗試exp4j。實施例(來自鏈路):
Expression e = new ExpressionBuilder("3 * sin(y) - 2/(x - 2)")
.variables("x", "y")
.build()
.setVariable("x", 2.3)
.setVariable("y", 3.14);
double result = e.evaluate();
另一種選擇是Javaluator。例如查看鏈接。
而且有EvalX。看下面的例子(來自鏈接):
Expression expression = new Expression("1+1/3");
result = expression.eval():
expression.setPrecision(2);
result = expression.eval():
我希望這有助於!
1
只是一個另外,最近我發現,你可以exp4j的ExpressionBuilder分成兩個部分,並在for循環中添加值的變量,你可以在這個網站上找到5例https://github.com/fasseg/exp4j/blob/master/src/test/java/net/objecthunter/exp4j/ExpressionBuilderTest.java
ExpressionBuilder e = new ExpressionBuilder("x^2")
.variable("x")
.build();
for(int i = 0; i < 10; i++) {
e.setVariable("x", i);
System.out.println("x^2 = " + e.evaluate());
}
相關問題
- 1. 在sympy中評估三角函數表達式
- 2. Java Eclipse評估表達式
- 3. 在java中評估後綴表達式
- 4. 布爾表達式中的評估函數和表達式
- 5. Java遞歸數學表達式評估
- 6. Java中的三元表達式是如何評估的?
- 7. Java中的布爾表達式評估
- 8. 評估數學表達式
- 9. 數學表達式評估
- 10. 數學表達式評估
- 11. 角JS表達式沒有評估
- 12. 角JS表達不評估
- 13. 評估表達式
- 14. 如何在角度表達式中評估javascript預定義函數
- 15. 的Java:評估後綴表達式
- 16. 駱駝...評估一個java表達式
- 17. JAVA - 表達式解析和評估庫
- 18. 表達式樹評估java.lang.NumberFormatException java
- 19. 評估c中的數學表達式#
- 20. 在Prolog中評估三變量表達式
- 21. 如何在java中評估字符串數學表達式
- 22. 在C中評估布爾表達式
- 23. 在javascript中的表達式評估
- 24. 在JSP中未評估EL表達式
- 25. 評估在楓樹中的表達式
- 26. 評估在Javascript中的字符串表達式角
- 27. 通過IronPython評估C#中的三角函數
- 28. 調試表達式評估
- 29. 表達式樹評估
- 30. Xtext評估表達式
你有搜索的網站或在谷歌上花了一段時間尋找已經這樣做的API? – CKing 2015-04-04 12:09:50
是的,我在找。我無法弄清楚如何制定我的要求。 – Mike 2015-04-04 12:11:20
你可以將它作爲中綴表達式輸入,並從那裏解析出來,然後處理計算。 – Tdorno 2015-04-04 12:11:57