用Java验证数学运算

用Java验证数学运算,java,validation,math,Java,Validation,Math,我有一个包含数学运算(通过编程生成)的字符串,类似 (1000+700)*(50+25)=(10000-5000)//这是一个例子 我需要一个方法,我必须将这个字符串传递给它,如果操作有效,它将返回true,否则它将返回false。关于如何实现这一点,有什么想法吗 有一个可爱的东西叫做中缀表达式解析器。您必须自己编写,但如果您查找如何执行中缀表达式解析器,这将是最好的选择 它基本上可以查找所有东西:正确的语法,您可以对其进行编码以查找等号两边的数学验证。我已经找到了问题的解决方案,我正在使用@f

我有一个包含数学运算(通过编程生成)的字符串,类似

(1000+700)*(50+25)=(10000-5000)//这是一个例子


我需要一个方法,我必须将这个字符串传递给它,如果操作有效,它将返回true,否则它将返回false。关于如何实现这一点,有什么想法吗

有一个可爱的东西叫做中缀表达式解析器。您必须自己编写,但如果您查找如何执行中缀表达式解析器,这将是最好的选择


它基本上可以查找所有东西:正确的语法,您可以对其进行编码以查找等号两边的数学验证。

我已经找到了问题的解决方案,我正在使用@fas编写的库

它确实是一个有用的库,您可以这样使用它:

String left = (1000 + 700) * (50 + 25);
String right = (10000 - 5000);

Calculable calc = new ExpressionBuilder(leftCondition).build();
double result1 = calc.calculate();

calc = new ExpressionBuilder(rightCondition).build();
double result2 = calc.calculate();

System.out.println(result1 + " ------------- " + result2);

=
上拆分两边,运行计算并确定它是否是以编程方式生成的,则应在生成时对其进行验证。o@RafaEl无法验证,因为它是以字符串形式生成的。@Hanky웃Panky分隔符并不总是一个
=
它可以不同,我如何在一侧运行计算?请参阅此链接