如何在控制台中插入三角函数以便进一步使用它?例如,sin(x)= 2x + 3log(y)或类似的东西。我想..我需要输入一个表达式作为字符串,然后将其处理为。但是如何?
答案 0 :(得分: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();
在您的特定情况下,您可以在控制台中询问用户以下输入并使用这些输入构建表达式:
答案 1 :(得分: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():
我希望这有帮助!
答案 2 :(得分:1)
另外,我最近发现你可以将exp4j ExpressionBuilder分成两部分并在for循环中为变量添加值,你可以在这个网站找到可能的例子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());
}