当前位置: 代码迷 >> J2SE >> 怎么将一串字符串 按boolean的运算方式来运算
  详细解决方案

怎么将一串字符串 按boolean的运算方式来运算

热度:56   发布时间:2016-04-23 20:43:14.0
求教:如何将一串字符串 按boolean的运算方式来运算。
String str = "a*(b+c*(d+e))";
a = true;
b = false;
c = false;
d = true;
e = false;

类似上面这种问题。
给了一串字符串形式的逻辑运算公式,公式里面会出现不同的变量,然后有星号和加好还有括号这三种运算符。
星号解析为“与”,加号解析为“或”,括号里面的内容优先运算。
我可以得出每个变量的boolean值,就是不知道有什么好方法来把这些值按给出的运算公式来计算出最后的结果。

我想知道除了 判断 最优先的括号 然后一层一层的计算,最后组合以外,还有没有什么比较高效的方式?
------解决方案--------------------
java 里面js 判断

String b="var a = true,b = false,c = false,d = true,e = false;";
String str = "a*(b+c*(d+e))".replace("*", "&&").replace("+", "
------解决方案--------------------
");
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
engine.eval(b+"var result="+str+";println(result)");
  相关解决方案