不适用JEP和MathEval,java如何校验含有变量的计算公式 是否有效
时间: 2024-02-09 14:09:09 浏览: 139
java JEP自定义字符串公式
4星 · 用户满意度95%
如果您不想使用JEP和MathEval这些库,也可以使用Java的内置功能来校验含有变量的计算公式是否有效。以下是一个使用Java内置功能校验含有变量的计算公式的示例代码:
```java
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class FormulaValidator {
public static boolean isFormulaValid(String formula, String[] variables) {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
for (String variable : variables) {
engine.put(variable, 0);
}
try {
engine.eval(formula);
return true;
} catch (ScriptException e) {
return false;
}
}
}
```
在上面的示例中,我们首先导入了必要的库,包括javax.script.ScriptEngine和javax.script.ScriptEngineManager。接下来,我们定义了一个名为FormulaValidator的类,并在其中定义了一个静态方法isFormulaValid(),该方法接受一个包含变量的计算公式和一个变量数组作为输入,并返回一个布尔值,指示该公式是否有效。
在方法中,我们首先创建了一个ScriptEngineManager对象和一个ScriptEngine对象,它们将用于解析和求值计算公式。然后,我们遍历变量数组,并使用ScriptEngine对象的put()方法将变量名和值(此处为0)添加到ScriptEngine的上下文中。接下来,我们使用ScriptEngine对象的eval()方法对计算公式进行求值。如果计算公式有效且可以求值,则该方法将返回true;否则,它将捕获ScriptException并返回false。
请注意,此示例使用了JavaScript引擎,但是Java还提供了其他脚本引擎,例如Groovy和Python,您可以根据需要选择适合您的引擎。
阅读全文