Mrkrky :
Is there any way to parse strings which include logical and
/or
operators and get result as true or false in java? For example
(1 OR 0 AND 1 AND 0 OR(0 AND 0))
I couldn't find any library. Actually I have some ideas but they are so complex. Maybe some easier way?
Daniil :
You could use already mentioned script engine:
String expression = "(1 || 0 && 1 && 0 ||(0 && 0))";
Object result = new ScriptEngineManager().getEngineByName("JavaScript").eval(expression);
System.out.println(result);
or spring expression language:
String data = "(true OR false AND true AND false OR(false AND false))";
ExpressionParser parser = new SpelExpressionParser();
Expression exp = parser.parseExpression(data);
result = exp.getValue();
System.out.println(result);
Please note, that in both cases there was needed to modify original expression by replacing eighter lofical operators or logical constants.