Java - 如何编写在String中解决方程的代码?

时间:2014-01-17 12:19:29

标签: java string parsing math methods

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

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

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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