我想处理这个多项式
字符串 str = "2*x^2 + x + 2*x^2 + 8 - x^3";
我用加号和减号运算符分割了字符串并得到了 2*x^2。我发现这个操作很难完成。
我知道首先我需要计算出 x 的值,假设 x=2,只是不知道如何将字符串解析为整数,因为字符串的其他部分也需要解析。
我也需要分解“2*x^2”吗?
如何在字符串中找到*。我知道我可以使用 str.contains("*"), 对于这个特殊操作,我知道 2*x^2 之后会发生什么,但如果用户输入多项式,那就是棘手的部分。
到目前为止的输出
运算 2*x^2 + x + 2*x^2 + 8 - x^3
加上 split
0 2*x^2
1 个
2 2*x^2
3 8 - x^3
减去分割
0 2*x^2 + x + 2*x^2 + 8
1 x^3
最佳答案
尝试使用这个:http://projects.congrace.de/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();
关于java - 在 Java 中分解多项式字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41464490/