1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
String condition = "a>c";
Matcher m = Pattern.compile("^(.*?)\\s*([<>!=]{1}[=]?)\\s*(.*?)$").matcher(condition);
boolean ok = m.matches();
// m.group(1) = "a"
// m.group(2) = ">"
// m.group(3) = "c"
List<String> params = new ArrayList<String>();
params.add(la valeur de ce que représente m.group(1) dans une String);
// si a=6 : params.add(String(6));
params.add(m.group(2)); // la condition
params.add(la valeur de ce que représente m.group(3) dans une String);
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine jsEngine = mgr.getEngineByName("JavaScript");
Invocable invocableEngine = (Invocable)jsEngine;
try {
jsEngine.eval("function evaluer(params) {" +
" var p = params.toArray();" +
" return eval(p[0] + p[1] + p[2]);" +
"}");
boolean resultat = (boolean)invocableEngine.invokeFunction("evaluer", params);
}
catch (ScriptException ex) {
ex.printStackTrace();
} |
Partager