[Maths] Evaluation String en Boolean
Bonjour tout le monde !
J'ai une question fondamentale pour le programme que je suis en train d'écrire : est-il possible de réellement convertir un String en Boolean ? Je veux dire par là que, toutes les méthodes style valueOf, parseBoolean, etc. renvoie true si le string vaut "true" et false pour le reste.
En fait, j'ai un string qui contient une condition : "a<b" (a et b deux entiers)
Et je voudrais que mon booléen me dise si cette condition est vérifiée, et non pas qu'il me dise si le string vaut "true" ou pas. En gros :
Code:
1 2 3 4 5
| // Au départ
String condition="a<b"
...
// A l'arrivée
boolean verifcondition=(a<b) |
Je suis désespéré de trouver une solution !
Merci d'avance !
Rémi
exemple simple en java (pas essayé la compilation)
voici une piste de solution encore plus simple (je crois) pour toi
Code:
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();
} |
:salut: