【发布时间】:2014-08-08 19:33:09
【问题描述】:
以下代码对String rani=String rani = "32*0.25"中的数据进行计算;并给出正确的输出为 8.0
import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
import javax.script.ScriptException;
public class StringMathEngine {
public static void main(String[] args) throws ScriptException {
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
String rani = "32*0.25";
System.out.println(engine.eval(rani));
}
}
但在以下代码中使用时失败:
import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
import javax.script.ScriptException;
public class StringMathEngine {
public static void main(String[] args) throws ScriptException {
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
String[]rani = {"s", "32*0.25", "r", "32*0.75+16", "r", "16", "s", "32"};
for(int n=0;n<rani.length; n++){
if(rani[n].equals("s")) {
rani[n]=rani[n].replaceAll("s","C/");
}
else if(rani[n].equals("r")){
rani[n]=rani[n].replaceAll("r","D/");
}
else {
rani[n]=engine.eval(rani[n]);
}
System.out.println(rani[n]);
}
}
}
作为编程新手,我需要帮助来更正此代码。
【问题讨论】:
-
您能否详细说明“失败”的含义?异常,错误结果,?...
-
需要更多信息。从海报。如果编译时错误是什么错误?只是 Joop Eggen 指出的那个缺失的分号吗?
标签: java javax.script