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

    // a contains 45*3 

如何將其轉換爲輸出135.00的DOUBLE?將包含算術符號的字符串轉換爲整數值

注:一個可以有任何arthimetic操作...(+, - ,/)

+0

最多隻有一個操作員嗎? – 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()); 
    } 
}