私はこの式を評価しようとしています:
ScriptEngineManager sem = new ScriptEngineManager ()
ScriptEngine scriptEngine = sem.getEngineByName("js") ;
String expr = "true ^ true";
Boolean obj = (Boolean) scriptEngine.eval(expr);
ただし、返される結果は java Double. 次のような String expr のさまざまなオプションを試しました。
String expr = "0x1 ^ 0x0";
String expr = "1 ^ 0";
基本的に、JavaScript エンジンを使用して、次のようなさまざまな式を評価できるようにしたいと考えています。
"ture && false || false (true || false && true || false XOR true)"
&& や || などの他のすべての演算子 そのような式を評価してブール値を返すと問題なく動作しますが、XOR (JavaScript と同等のビット単位の ^ 演算子を持つ) になると、Double を返します。式を変換して XOR をいくつかの論理演算子 (((true || false) && !(true && false)) など) に置き換えるのは本当にしたくありません。上記の論理式に。この式を評価することの要点は、その複雑さを解析しなくても評価できるようにすることです。
どんな助けでも大歓迎です!前もって感謝します!