我正在尝试用 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) 方法有简单的实现吗?可能正在使用一些正则表达式?如果有的话请告诉我。谢谢