如果字符串“ what”不包含运算符(+,-,*,/),则以下内容应该抛出InvalidExpression异常。
//Check if the input contains at least one operation
else if(!what.matches(".*[+ \\- * \\/].*")) {
throw new InvalidExpression("No operation in the expression");
}
但是,如果我运行以下JUnit4测试,则不会得到正确的异常。评估方法可计算数学表达式,理论上应包含一个运算。
@Test (expected = InvalidExpression.class)
public void test() throws InvalidExpression {
testCalc.evaluate("5 5");
}
答案 0 :(得分:2)
括号内有空格。因此,空格是有效的运算符。
您的正则表达式应为
".*[+\\-*/].*"