例如:
>String str="index==1";
>int index=1;
>if(str)
> System.out.println("1");
我的意思是' if'将使用" str"的值作为一个论点,并打印" 1"。
我试着寻找答案,但我找不到
非常感谢你!!
答案 0 :(得分:1)
Java无法执行那种“eval”函数,但是有一种方法可以在java中使用javascript来返回带有“ScriptEngineManager”的“eval”的结果:
import javax.script.*;
String str="index==1";
int index = 1;
try {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("js");
engine.put("index", index); //set index as variable in js
engine.put("str", str);//set str as variable in js
Boolean result = (Boolean) engine.eval("result = eval(str)"); //eval function
System.out.println("=>" + result); //boolean as result
if(result) System.out.println("1");
} catch (Exception e){e.printStackTrace();}
答案 1 :(得分:0)
字符串将数据保存为一系列字符。 (chars char[] c;
数组)if语句检查布尔结果。即:if(index == 1){...} //returns true
。但是,String str返回“index == 1”(字符序列)而不是布尔运算符。这就是if(str)
无效的原因。