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

    // a contains 45*3 

Bunu 135.00 çıkış yapan bir DOUBLE haline nasıl dönüştürüyorum?Bir aritmetik işareti içeren Stringi tamsayı olarak dönüştürün

Not: ... herhangi arthimetic operasyonu olabilir (+, -, /)

+0

En çok bir operatör var mı? – Maljam

+0

a birden çok işleç sahibi olabilir ... a = "((a + 3) * 4)" – Gowtham

+1

Bölme bu dizgede geçerli bir işlemse, sonuç bir int olur diye bir garanti yoktur. (Sadece onu buraya koyarak) –

cevap

5

En basit çözüm Java JavaScript motoru inşa etmek bu kapalı geçmektir.

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()); 
    } 
} 
İlgili konular