Librairie JAVA requetage avec gestion des parentheses

chreezy-breezy -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour à tous,

Je viens vers vous car dans le cadre d'un stage je dois trouver une solution afin de permettre aux utilisateurs de taper des recherches en y incluant des opérateurs logiques.
Par exemple : ((toto AND tata) OR (titi AND NOT tata))
Cela me renverrait tout les résultats comprenant toto ET tata OU titi mais pas tata.
Plutot que de m'embeter à coder cette fonctionnalité, j'aimerai savoir si l'un d'entre vous connais une librairie JAVA capable de gérer ce type de recherche (gestion des parenthèses et des opérateurs logiques de base ==> AND, OR, NOT).

Merci par avance
A voir également:

1 réponse

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

En Java le mécanisme de ScriptEngine te permet d'utiliser des langages de script qui permettent de faire ça sans trop de soucis.

Exemple en JavaScript :

package test;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class Test {
    public static void main(String[] args) throws ScriptException {
        ScriptEngine js = new ScriptEngineManager().getEngineByName("js");
        boolean toto = true, tata = true, titi = true;
        String script = "toto=" + toto + "; "
                      + "tata=" + tata + "; "
                      + "titi=" + titi + "; "
                      + "((toto && tata) || (titi && ! tata));";
        boolean result = (boolean) js.eval(script);
        System.out.println(result);
    }
}
0