2016-03-21 13 views
0
String a = "a*3"; 
    a = a.replace("a","45"); 

    // a contains 45*3 

どうすればそれを135.00を出力するDOUBLEに変換できますか?算術符号を含む文字列を整数値に変換する

注:任意のarthimetic操作を持つことができます...(+、 - 、/)

+0

最大で1つの演算子がありますか? – Maljam

+0

aは複数の演算子を持つことができます。a = "((a + 3)* 4)" – Gowtham

+1

除算がこの文字列で有効な演算である場合、結果はintになるという保証はありません。 (ちょうどそこにそれを置く) –

答えて

5

最も簡単な解決策は、JavaのJavaScriptエンジンに組み込まれにこれをオフに渡すことです。

public class Eval { 

    public static void main(String[] args) throws ScriptException { 
     ScriptEngine engine = new ScriptEngineManager().getEngineByExtension("js"); 

     engine.put("a", 45); 
     Number val = (Number) engine.eval("a*3"); 
     System.out.println(val.doubleValue()); 
    } 
} 
関連する問題