2012-12-08 3 views
0

Je veux prendre l'entrée d'utilisateur dans la console tels que « keyword1 et keyword2 » ou « keyword1 et (keyword2 ou mot clé3) »Java booléenne requête

Ensuite, je veux interpréter et de le convertir en booléens pour interroger les mot-clé dans un tableau.

Il devrait gérer les parenthèses "et", "ou" et "()".

Je préfère ne pas utiliser une bibliothèque tierce pour cela, mais s'il n'y a pas de façon simple, je vais prendre cela. J'ai commencé à regarder dans Lucene mais cela semble complexe pour mes besoins et je veux pouvoir interroger un tableau au lieu d'un document.

Éditer: Note Je suis plutôt novice en programmation, donc les solutions les plus simples sont préférables.

+0

Vous devriez probablement google pour "générateur d'analyseur" et choisissez celui que vous aimez. Vous utilisez Java, ANTLR peut donc être un bon choix. Ou vous pouvez écrire le vôtre; les parseurs récursifs-descendants ne sont pas trop difficiles à construire. – tmyklebu

Répondre

0

Vous avez besoin d'un analyseur, mais vous pouvez envisager d'utiliser le compilateur Java lui-même si vous avez enveloppé l'entrée dans du code qui ferait une classe valide.

+0

Y en a-t-il un dans les classes par défaut ou devrais-je en utiliser un comme Lucene? Que voulez-vous dire "envelopper l'entrée dans le code"? Avez-vous un exemple. Je suis un peu un noob :) – jigglylizard

0

Vous pouvez utiliser le compilateur de compilateurs tels que JavaCC. Il peut produire du code java plutôt que d'analyser des expressions avec votre propre grammaire et de l'interpréter. Dans ce cas, vous ne devez pas utiliser de bibliothèques externes.

There is exemple de calculatrice arithmétique sur JavaCC.

Questions connexes