问题如下  String a="(((4>5)&&(6>7))||(8>2))";
           然后怎么能够写一个方法得到一个boolean值
           boolean flg=getBoolean(a);
请高手指点,如果有写好的方法小弟不胜感激

解决方案 »

  1.   

    java里面是有一个双选择表达式的自己找下吧!
      

  2.   

    boolean flg = (((4>5)&&(6>7))||(8>2));或者你的意思是如下:boolean flg = Boolean.parseBoolean(a);
      

  3.   


    boolean bool=Boolean.parseBoolean("(((4>5)&&(6>7))||(8>2))");
      

  4.   

    如果是jdk1.6的话,使用以下方法:
    import javax.script.*;
    public class Test {
    public static void main(String... args) throws Exception {
    ScriptEngineManager scriptManager = new ScriptEngineManager();
    ScriptEngine jsEngine = scriptManager.getEngineByName("javascript");
    String a="(((4>5)&&(6>7))||(8>2))";
    Object obj = jsEngine.eval(a);
    boolean result = false;
    if(obj instanceof Boolean) {
    result = (Boolean)obj;
    System.out.println(a + " 执行结果:" + result);
    } else {
    throw new Exception("Result Error:" + obj);
    }

    }
    }如果不是jdk1.6的话使用使用http://www.mozilla.org/rhino/,jdk1.6中的javax.script中的js引擎就是用的rhino
      

  5.   

    还是用Boolean.parseBoolean(String s) 这个函数吧!
      

  6.   

    Boolean.parseBoolean根本不满足lz要求
    parseBoolean
    public static boolean parseBoolean(String s)将字符串参数解析为 boolean 值。如果 String 参数不是 null 且在忽略大小写时等于 "true",则返回的 boolean 表示 true 值
    示例:Boolean.parseBoolean("True") 返回 true。
    示例:Boolean.parseBoolean("yes") 返回 false。 
    参数:
    s - 包含要解析的布尔表达式的 String 
    返回:
    String 参数所表示的布尔值
    从以下版本开始: 
    1.5 
      

  7.   

    如果是JavaScript  eval() 哇咔咔~
      

  8.   

    (((4>5)&&(6>7))||(8>2)) Excute result : true