gpt4 book ai didi

java - 检查字符串是否是数学表达式?

转载 作者:行者123 更新时间:2023-11-29 09:44:56 25 4
gpt4 key购买 nike

我正在尝试用 Java 编写一个接受字符串作为参数的方法。现在这个字符串可能是一个数学表达式,也可能只是一个普通的字符串。只有当它是一个数学表达式时,我才必须评估它,如果不是,我就不要管它。我将使用 Java 脚本引擎计算数学表达式,如下所示:

ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
String foo = "1+2*10";
System.out.println(engine.eval(foo));

但问题是如果我传递一个不是数学表达式的字符串,就会抛出异常。我不想在我的代码中出现异常。我想要实现的是这样的:

if(isExpression(foo))
{
engine.eval(foo);
}

这样我就可以在计算之前检查它是否是一个数学表达式。方法 isExpression(foo) 是否有一个简单的实现?可能正在使用一些正则表达式?如果有的话请告诉我。谢谢

最佳答案

对于像这样非常复杂的操作,查看它是否是一个有效公式所付出的努力几乎与实际进行评估所付出的努力一样多。

我建议您只尝试求值,如果失败,抛出一个特定领域的异常,比如 CannotEvaluateFormulaException,然后捕获它。

关于java - 检查字符串是否是数学表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11160203/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com