Java中三角表达式的求值
如何在控制台中插入三角函数以进一步使用它??例如,sin(x)=2x+3log(y)或类似的东西。。我需要以字符串形式输入表达式,然后将其作为字符串进行处理。但是怎么做呢?看看 我们已经在我们的一个项目中广泛使用了这个库,以解决您所面临的完全相同的问题Java中三角表达式的求值,java,function,Java,Function,如何在控制台中插入三角函数以进一步使用它??例如,sin(x)=2x+3log(y)或类似的东西。。我需要以字符串形式输入表达式,然后将其作为字符串进行处理。但是怎么做呢?看看 我们已经在我们的一个项目中广泛使用了这个库,以解决您所面临的完全相同的问题 Expression e = new ExpressionBuilder("3 * sin(y) - 2 / (x - 2)") .variables("x", "y") .buil
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();
在您的特定情况下,您可以在控制台中要求用户提供以下输入,并使用这些输入构建表达式:
我希望这有帮助 只是一个补充,我最近发现可以将exp4j ExpressionBuilder分为两部分,并在for循环中为变量添加值,您可以在这个网站上找到一些示例
ExpressionBuilder e=新的ExpressionBuilder(“x^2”)
.变量(“x”)
.build();
对于(int i=0;i<10;i++){
e、 设置变量(“x”,i);
System.out.println(“x^2=“+e.evaluate());
}
您是否搜索过该网站,或者在google上花了一些时间来寻找已经实现这一功能的API?是的,我正在寻找。我不知道如何精确地表达我的请求。你可以将它作为中缀表达式输入,然后将它解析到某种堆栈上,然后处理计算。好的,谢谢,我会的try@Mike看看我的答案,一个现有的库可以解决你的问题。看起来不错,但是在哪里可以看到安装软件包的说明?@Mike你有没有尝试在google中搜索exp4j?只要访问第一个弹出的链接,您就会找到一个下载jar的链接。您可以将此jar添加为项目依赖项。如果您不知道如何在java程序/项目中使用外部JAR,请在stackoverflow上发布一个新问题。我相信我已经回答了你的直接问题。@Mike很高兴这有帮助!
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();
Expression expression = new Expression("1+1/3");
result = expression.eval():
expression.setPrecision(2);
result = expression.eval():
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());
}