在我的Java应用程序中,我依靠通过ScriptEngine实现的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] ^列在第5列的行号1处,这里具有示例性输入comp =“3-3”
或者:
public int [] res中的错误:javax.script.ScriptException :: 1:6预期操作数但找到* [-12,*,3] ^在第6列的第1行
我不懂JavaScript,所以我不知道该怎么做才能解决这个错误。
答案 0 :(得分:0)
看起来字符串是一个字符串化的数组,所以在将它传递给Java应用程序之前,您需要在JavaScript中join()
数组,或者编写一些Java代码来执行此操作。
这是JavaScript代码:
var str = [3, '-', 3].join(''); // "3-3"