// Simple test to validate expression
// Example: <number> <operator> <number> <=>
// 1 * 5 =
import java.util.regex.Matcher;
import java.util.regex.Pattern;
class ExpressionValidator
{
public static boolean isValidExpression
( final String exp
) {
final String regex
= "\\d+\\s*[*|/|+|-]\\s*\\d+\\s*[=]"; final Pattern pattern = Pattern.compile( regex );
final Matcher matcher = pattern.matcher( exp.trim() );
return matcher.find();
}
public static void main
( final String[] args
) {
{
" 1 + 2 =",
" 3 * 5 =",
"12 + 10 =",
" 33 = 25 ",
" +65 65 ",
"45 666 ="
};
for ( final String exp
: expressions
) {
System.
out.
println( "[" + exp
+ "] >> " + isValidExpression
( exp
) ); }
}
}
Ly8gU2ltcGxlIHRlc3QgdG8gdmFsaWRhdGUgZXhwcmVzc2lvbgovLyBFeGFtcGxlOiA8bnVtYmVyPiA8b3BlcmF0b3I+IDxudW1iZXI+IDw9PgovLyAgICAgICAgICAgICAxICAgICAgICAgICogICAgICAgIDUgICAgICA9CgppbXBvcnQgamF2YS51dGlsLnJlZ2V4Lk1hdGNoZXI7CmltcG9ydCBqYXZhLnV0aWwucmVnZXguUGF0dGVybjsKCmNsYXNzIEV4cHJlc3Npb25WYWxpZGF0b3IKewoJcHVibGljIHN0YXRpYyBib29sZWFuIGlzVmFsaWRFeHByZXNzaW9uKCBmaW5hbCBTdHJpbmcgZXhwICkKCXsKCQlmaW5hbCBTdHJpbmcgcmVnZXggPSAiXFxkK1xccypbKnwvfCt8LV1cXHMqXFxkK1xccypbPV0iOwoJCWZpbmFsIFBhdHRlcm4gcGF0dGVybiA9IFBhdHRlcm4uY29tcGlsZSggcmVnZXggKTsKCQlmaW5hbCBNYXRjaGVyIG1hdGNoZXIgPSBwYXR0ZXJuLm1hdGNoZXIoIGV4cC50cmltKCkgKTsKCQlyZXR1cm4gbWF0Y2hlci5maW5kKCk7Cgl9CgoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4oIGZpbmFsIFN0cmluZ1tdIGFyZ3MgKQoJewoJCWZpbmFsIFN0cmluZ1tdIGV4cHJlc3Npb25zID0gCgkJeyAgCgkJCSIgMSArICAyID0iLAoJCQkiIDMgKiAgNSA9IiwKCQkJIjEyICsgMTAgPSIsCgkJCSIgMzMgPSAyNSAiLAoJCQkiICs2NSAgNjUgIiwKCQkJIjQ1IDY2NiAgPSIKCQl9OwoJCQoJCWZvciAoIGZpbmFsIFN0cmluZyBleHAgOiBleHByZXNzaW9ucyApCgkJewoJCQlTeXN0ZW0ub3V0LnByaW50bG4oICJbIiArIGV4cCArICJdID4+ICIgKyBpc1ZhbGlkRXhwcmVzc2lvbiggZXhwICkgKTsKCQl9Cgl9Cn0=