我怎样才能使用字符串值作为参数?

时间:2018-01-06 21:52:46

标签: java

例如:

>String str="index==1";  
>int index=1;  
>if(str)  
>       System.out.println("1");  

我的意思是' if'将使用" str"的值作为一个论点,并打印" 1"。
我试着寻找答案,但我找不到 非常感谢你!!

2 个答案:

答案 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)无效的原因。