java - 在 Java 中分解多项式字符串

标签 java arrays string parsing polynomials

我想处理这个多项式

字符串 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/

相关文章:

c - 了解 C 字符串连接

Python:找到最接近的字符串(从列表中)到另一个字符串

java - Java8 项目上的 SonarQube 给出了 jacoco-Exception

java - 创建部分为虚线和部分为实线的边框

arrays - Perl 列表中的多散列

python - numpy 计算的输入/输出验证/转换

java - 更改字符串中的某些字符

java - Java从串口读取文件

java - org.springframework.beans.factory.NoSuchBeanDefinitionException : No bean named 'customerService' is defined

javascript - js中的对象数组: remove duplicates