在 Java 中将数学表达式解析为字符串
给定一个表示为字符串的数学表达式,例如“5 4*(7-15 )”,是否可以在Java中计算并返回数值结果?此外,什么方法可以最有效地解析算术表达式?
解决方案:
将数学表达式计算为字符串的一种方法是利用 BeanShell bsh.Interpreter 类。以下代码演示了此技术:
Interpreter interpreter = new Interpreter(); interpreter.eval("result = 5+4*(7-15)"); System.out.println(interpreter.get("result"));
此方法通过确保要评估的字符串来自可靠的来源来防范潜在的安全风险。
或者,更复杂但更安全选项是使用 ANTLR(另一种语言识别工具)。 ANTLR 构成了一个基于语法的解析器生成器,能够以处理数学表达式为起点。
以上是Java 如何有效地解析和计算以字符串形式给出的数学表达式?的详细内容。更多信息请关注PHP中文网其他相关文章!