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 - 如何编写在字符串中求解方程的代码? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章