Java - 如何编写在字符串中求解方程的代码? [关闭]

Posted

技术标签:

【中文标题】Java - 如何编写在字符串中求解方程的代码? [关闭]【英文标题】:Java - How to write a code that Solve equation inside a String? [closed] 【发布时间】:2014-02-06 18:46:51 【问题描述】:

如何制作一个可以解方程的字符串,例如:如果我们有

String x = "a=3;b=4;c=a*b";

它必须返回"c=12" 以获得答案

【问题讨论】:

我做了一个这样的方法: static String solver(String s) return "something"; 所以如果用户在这个方法里面放一些方程,它会返回那个数学方程的答案,但是问题是如何让字符串计算那些方程?,你知道怎么做吗? 没有任何意义? 请提供到目前为止您已经尝试过的代码,因为在 *** 中,答案将可用于保持开发人员的努力,而不是试图复制代码并执行的人 家庭作业?为此使用数学库 @Arief27 去上课,这对灵魂有好处! 【参考方案1】:

嗯。我不能给你代码...我可以给你一些建议..

    根据分号 (;) 拆分字符串。 对于数组中的每个字符串(拆分后得到的,最后一个除外)基于“=”再次拆分。 获取拆分字符串的 RHS 并将其解析为整数。 现在解析基于“;”拆分主字符串后得到的最后一个字符串。使用 contains() 查看其中存在哪些操作。还要检查使用 contains() 涉及的变量是什么。检查变量 int 值(根据“=”拆分并在 RHS 部分使用 Integer.parseInt 后得到。) 根据字符串中包含的 (*,+,-,/) 执行操作。您可以为此使用 switch 语句。

【讨论】:

好的,我试试,谢谢:)【参考方案2】:

我会创建一个适合给定语法的解析器(我希望它与 Java 类似,具有基本的算术)。或者干脆运行 Jython 并查看结果(Jython 是 JVM 的 Python 实现,x 字符串的值适合 Python 语法)。也许您可以自己解析字符串,但坦率地说,我不建议您这样做。基本上是因为一个像样的解析器足够复杂(显然稍后您将需要运算符优先级:2 + 3*4 == 14,而不是 20,您将需要 () 等等)。所以 Python 之类的是计算器最快的解决方案。

【讨论】:

以上是关于Java - 如何编写在字符串中求解方程的代码? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

急!!如何用matlab语言编写一个用牛顿迭代法求解经过有限差分法处理过的非线性方程组

在python中求解微分方程组

python二元一次方程求根简单

用C语言编写一程序求解一元二次方程的根。

如何在python中使用输入求解和方程[重复]

在 Java 中使用 Permutations 求解方程