评估以String形式给出的表达式

时间:2016-07-07 08:12:24

标签: java

我在字符串中得到了一些这样的值:

( 1 or 0 or 1 ) and ( 0 or 1 ) and ( 1 and 1 ) and 1

为了更容易理解:

( true || false || true ) && ( false || true ) && ( true && true ) && true

整个字符串现在评估为" true" (1),但如何在程序中检查? 我可以做一些数学计算来得到结果" 1"或" 0"? 字符串不固定。它可以改变。 如果有人知道如何做到这一点,请分享。

它就像IF语句一样,您可以检查某个条件是真还是假。

类似的东西:

class TF{
public static void main(String args[]){
int a=5;
int b=10;
int c=5;
if( ( a==c || a==b || a==c ) && ( b==c || a==c ) && ( a==c && c==a ) && a==c ){ System.out.println("true"); }else{ System.out.println("false"); }
} }

同样,以下所有内容都是" false":

( true && false && true ) && ( false || true ) && ( true && true ) && true

( true || false || true ) && ( false || false ) && ( true && true ) && true

( true || false || true ) && ( false || true ) && ( true && true ) && false

1 个答案:

答案 0 :(得分:2)

您可以使用Expression评估方法。 要了解方法,请参阅:http://www.geeksforgeeks.org/expression-evaluation/

如果您不想自己实现这种复杂的方法,可以使用库。链接到图书馆:https://github.com/uklimaschewski/EvalEx