2014-01-05 29 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