简体   繁体   English

错误:在Android Studio中评估以字符串形式给出的数学表达式

[英]Error: Evaluating a math expression given in string form in Android Studio

I want to evaluate a math expression from a string using Scriptmanager in android studio. 我想使用android studio中的Scriptmanager从字符串中评估数学表达式。 I have successfully imported library Jsr223 . 我已经成功导入了库Jsr223 Now I am able to import following libraries required 现在我可以导入以下所需的库

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;

Now when I do following code 现在,当我执行以下代码时

ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
String foo = "40+2";
ans = engine.eval(foo);

I get error at ans = engine.eval(foo); 我在ans = engine.eval(foo);出错

unhandled exception : javax.script.ScriptException. 未处理的异常:javax.script.ScriptException。 ans datatype is int. ans数据类型为int。

Error Image 错误图片

Using Android Studio 1.5.1 . 使用Android Studio 1.5.1。

try 
{
    int ans= (int) engine.eval(foo);
    System.out.printf("%d \n", ans);
} catch (ScriptException e) 
{   e.printStackTrace();   }

This does the job. 这样就可以了。 Notice the try/catch, the int declaration, and the casting to an int . 注意try / catch, int声明以及对int的强制转换。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM