Я пытаюсь написать метод на 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)? Может быть, используется какое-то регулярное выражение? Пожалуйста, дайте мне знать, если они есть. Спасибо