JavaApplication中的JavaScriptEval:“;javax.script.scriptException:应为操作数,但找到了";
在我的Java应用程序中,我依靠通过ScriptEngine实现的JavaScript来解释和计算从字符串中读取的一些基本数学方程 以下是我得到的:JavaApplication中的JavaScriptEval:“;javax.script.scriptException:应为操作数,但找到了";,javascript,java,Javascript,Java,在我的Java应用程序中,我依靠通过ScriptEngine实现的JavaScript来解释和计算从字符串中读取的一些基本数学方程 以下是我得到的: public void calc(String comp){ try { ScriptEngineManager mgr = new ScriptEngineManager(); ScriptEngine eng = mgr.getEngineByName("JavaScript");
public void calc(String comp){
try {
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine eng = mgr.getEngineByName("JavaScript");
res[k] = (Integer) eng.eval(comp);
} catch (Exception e){
System.out.println("Error in res: " +e);
}
}
}
无论哪种输入,执行都将导致:
res:javax.script.ScriptException::1:5中出现错误,应为操作数,但找到,
[3, -, 3]
^在第1行第5列中,这里使用示例性输入comp=“3-3”
或:
public int[]res:javax.script.ScriptException::1:6中出现错误,应为操作数,但未找到*
[-12, *, 3]
^在第1行第6列中
我不知道JavaScript,所以我不知道如何修复此错误 字符串看起来是一个字符串化数组,因此在将数组传递到Java应用程序之前,您需要使用JavaScript将其
join()
下面是JavaScript代码:
var str = [3, '-', 3].join(''); // "3-3"
你把哪个javascript字符串传递给引擎?你在说什么,正如我说的,我对javaScriptSo一无所知。那么什么是comp
?Fortran代码?不,它只是一个数学表达式,例如“3+5”或“2*9”,或者字符串看起来是一个字符串化数组,因此在将数组传递到Java应用程序之前,您需要join()。查看使用此Java的JS代码会有所帮助。