Подобно этому вопросу Я хочу разделить свое логическое выражение A >= 10 AND B <= 20 OR C in ('3', '4')
на A
, >=
, 10
, AND
, B
, <=
, 20
, OR
, C
, in
, ('3', '4')
как это можно сделать?
Я пытаюсь пойти по следующему пути (но это не выглядит элегантным подходом)
String orRules[] = inputRule.split(" OR ");
for (int i = 0; i < orRules.length; i++) {
String andRules[] = orRules[i].split(" AND ");
for (int j = 0; j < andRules.length; j++) {
String[] result = andRules[j].split("(?<=[-+*/])|(?=[-+*/])");
System.out.println(Arrays.toString(result));
}
orRules[i] = String.join(" AND ", andRules);
}
output = String.join(" OR ", orRules);