2010-06-03 4 views
2

J'ai une chaîne;Valider une instruction à partir d'une chaîne en Java

String allIn = "(50 > 100) AND (85< 100)"; 

Maintenant, je dois évaluer si les conditions à l'intérieur sont VRAI ou FAUX, comment puis-je le faire?

En réalité, la chaîne sera une valeur provenant d'un champ de ma base de données, où je remplacerai différentes valeurs et formera une chaîne comme indiqué ci-dessus.

+0

décrit l'ensemble des opérations que vous voulez prendre en charge. Est-ce que ">" et "<" sont les seules opérations? Y a-t-il une possibilité que des données invalides soient présentes? – Roman

+0

Les possibles sont < > ET OU! = Il est possible pour les données invalides – Adnan

Répondre

2

Jetez un oeil à la eval project

+0

Je viens de jeter un coup d'oeil, mais il semble que cela ne supporte que la syntaxe Java, donc il devrait convertir ce qu'il utilise (SQL-ish?) À Java . –

+0

Semble ce que j'ai besoin, va le vérifier dès maintenant. Merci Bozho – Adnan

+0

+1 Le meilleur outil pour ce travail –

0

Pour moi, cela ressemble à une question "Design Compiler" où vous:

  • Parse la chaîne dans ses composants individuels en utilisant l'espace, <> ET OR = comme délimiteurs
  • Poussez sur la pile lorsque vous rencontrez une valeur
  • Pop de la pile lorsque vous rencontrez un opérateur et obtenez partie suivante de l'expression

Mais personnellement - je descendrais la route Eval (comme indiqué déjà) si possible - même si cela signifie que vous devez changer la syntaxe actuelle de la chaîne ou analyser et convertir la syntaxe:

https://eval.dev.java.net/

Questions connexes