Librairie JAVA requetage avec gestion des parentheses

Fermé
chreezy-breezy - 23 avril 2015 à 11:34
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 26 avril 2015 à 13:24
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 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
26 avril 2015 à 13:24
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