当前位置: 首页 > 面试题库 >

Java 如何解析以字符串形式给出的数学表达式并返回数字?

梁豪
2023-03-14
问题内容

Java中有没有一种方法可以从以下数学表达式获得结果:

String code = "5+4*(7-15)";

另一方面,解析算术表达式的最佳方法是什么?


问题答案:

你可以将其传递给BeanShell bsh.Interpreter,如下所示:

Interpreter interpreter = new Interpreter();
interpreter.eval("result = 5+4*(7-15)");
System.out.println(interpreter.get("result"));

你将要确保评估的字符串来自受信任的来源,并采取通常的预防措施,否则,它将立即起作用。

如果你想采用更复杂(但更安全)的方法,则可以使用ANTLR(我怀疑这是一个数学语法的起点),然后实际自己编译/解释该语句。



 类似资料:
  • 我试图编写一个Java例程,从值计算数学表达式,如下所示: 我想避免很多if-then-else语句。我怎么能这么做?

  • 问题内容: 我想要一个带字符串并返回一个数组的Python函数,该数组中的每个项目都是字符,或者是这种类型的另一个数组。嵌套数组在输入字符串中以’(’开始,以’)’结尾。 因此,该函数将如下所示: 注意:我更喜欢纯功能的解决方案。 问题答案: 和,

  • null 有人能在这里给我指个正确的方向吗?

  • 问题内容: 我在MySQL数据库中有一个表字段: 因此,我使用以下查询将其调用到我的页面: 然后,为了处理结果,我要做: 现在,如果我这样做: 我得到一个字符串。 这不是整数吗? 问题答案: 当您使用PHP从MySQL数据库中选择数据时,数据类型将始终转换为字符串。您可以使用以下代码将其转换回整数: 或使用功能:

  • 问题内容: 这将返回以下错误: 我知道可以解决此问题,但是难道没有更好,更重要的是更安全的方法来评估存储在字符串中的数学表达式吗? 问题答案: 可用于解析数学表达式。特别是, 显示了如何解析基本算术表达式。下面,我将fourFn重新包装为一个数字解析器类,以便于重用。

  • 问题内容: 我正在尝试将String转换为我得到的整数。原因很明显。但是我需要一个解决方法。以下是示例代码。 我需要注释部分中的逻辑,一个通用的逻辑会很好。谢谢。 问题答案: 使用结果并将其转换为: