2014-01-05 26 views
3

我想在Android中實現以下代碼。我怎麼做?在Android中使用腳本引擎管理器來評估中綴表達式

System.out.println("Enter a String"); 
Scanner sc = new Scanner(System.in); 
String string = sc.next(); 

System.out.println(new ScriptEngineManager().getEngineByName("JavaScript").eval(string));//this is solving infix expression using javascript 
+0

Android API,不提供這樣的類。但是,您可以簡單地實現自己的堆棧來評估表達式。看到這第二個答案:http://stackoverflow.com/questions/7185589/how-to-calculate-expression-in-java – user2336315

+0

我已經添加jav8-jsr223-win-amd64-0.6.jar在lib中,我是能夠在我的應用程序中使用這些語句,但應用程序崩潰時,我execute.eval()..是否有任何解決方案呢? – user2475511

+0

嗯,我沒有這個庫的經驗,但發佈相關的android代碼和stacktrace將有助於解決問題。 – user2336315

回答

0

你試過投呢?像這樣,

double a = (double) engine.eval("25+36"); 

or this(toString());

System.out.println(new ScriptEngineManager().getEngineByName("JavaScript").eval(string).toString()); 
+0

謝謝,但它沒有奏效。我寫了一個自定義分析器。 – user2475511

+0

我曾試過。有效。希望你找到最好的一個。問候。 –

+0

它在java中工作時,您打印到控制檯,但在Android中,它不工作,因爲你在文本視圖或其他東西,但不是控制檯顯示結果。 – user2475511