2016-12-22 16 views
0

だから私はあなたがすべて素晴らしいですが、私はその式に変数を評価するために何を望むかどうかは、X呼び出し、0と1の間のランダムな変数はこれが考えであることを確認文字列を数式に変換し、変数を使用して評価する方法は?

ScriptEngineManager mgr = new ScriptEngineManager(); 
    ScriptEngine engine = mgr.getEngineByName("JavaScript"); 
    String infix = "3+2*(4+5)"; 
    System.out.println(engine.eval(infix)); 

を使用することができることを知っていますユーザが与えた入力を用いてモンテカルロ法を用いて定積分を評価する。だから、もし我々が何かのようなものを持っていたら

String infix = x^2+2; 
+1

問題は何を? – shmosel

+0

はあなたの問題を明確に述べています。 –

答えて

1

ScriptEngine#putを使ってそれぞれの変数を設定するだけです。例えば:

... 
engine.put("x", 25); 
System.out.println(engine.eval("x * x + 3 * x + 5")); 

は、別の方法としては、たScriptEngineのコンテキストが2 eval -callsの間で切り替えされていないという事実を利用作ることができます:

... 
engine.eval("var x = 25"); 
System.out.println(engine.eval("x * x + 3 * x + 5")); 
+0

sweeeeet人それは最高ですね。 – jc7553a

+0

@ jc7553a助けて嬉しいです:)。答えがあなたの問題を解決した場合は、それを受け入れることを検討してください(アップ/ダウン矢印の横にある目盛り)。 – Paul

関連する問題