本帖最后由 zhuchuankun_yy 于 2012-02-07 10:41:44 编辑

解决方案 »

  1.   

    这个相当于要做模拟计算和逻辑判断了,找找开源工具包吧。我记得这个还可以:QLExpress这里有简单介绍:
    http://www.open-open.com/lib/view/open1326886081405.html
      

  2.   

    1=1在程序里面赋值是编译通不过的
    得用1==1 2==3才行
    ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript");
         Object object2 = engine.eval("2==3");
         System.out.println(object2);
    不过得jdk1.6来支持
      

  3.   

    ScriptEngine 、ScriptEngineManager是那个包路径import啊
      

  4.   

    javax.script.ScriptEngineManager话说4楼的不错,俺生活在1.4的人表示之前完全不知道有这么个东东。
      

  5.   

    可以的。ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript");

    String str1 ="'1' <='2'";
    String str2 ="'1' =='2'";
    String str3 ="'1' >='2'";

    String str4 ="1 <=2";
    String str5 ="1 ==2";
    String str6 ="1 >=2";

    String str7 ="1 ==1 && 1==1";
    String str8 ="1 ==1 && 2!=2";
    String str9 ="1 ==1 || 2!=2";

            Object object2 = engine.eval(str1); 
            Logger.getLogger("----------").info(str1 +"  " +engine.eval(str1).toString());
            Logger.getLogger("----------").info(str2 +"  " +engine.eval(str2).toString());
            Logger.getLogger("----------").info(str3 +"  " +engine.eval(str3).toString());
            
            Logger.getLogger("----------").info(str4 +"  " +engine.eval(str4).toString());
            Logger.getLogger("----------").info(str5 +"  " +engine.eval(str5).toString());
            Logger.getLogger("----------").info(str6 +"  " +engine.eval(str6).toString());
            
            Logger.getLogger("----------").info(str7 +"  " +engine.eval(str7).toString());
            Logger.getLogger("----------").info(str8 +"  " +engine.eval(str8).toString());
            Logger.getLogger("----------").info(str9 +"  " +engine.eval(str9).toString());
      

  6.   

      此问题的使用场合:
      如果数据库查询次数频繁到影响性能,改为在java中判断表达式,
      这样可以提高系统的运行性能。
      

  7.   


    String str1 ="1 ==1";
    String str2 ="2 ==3";
    if(str1.equals("true"))
    {
    System.out.println("String str1 ="1 ==1"是true");
    }//以下同理
      

  8.   

    public class Test1{
    public static void main(String[] args){
    String str01 = "1=1";
    String str02 = "2=3";
    System.out.println(check(str01));
    System.out.println(check(str02));
    }

    static boolean check(String str){
    String[] strings = str.split("=");
    return Integer.valueOf(strings[0]) == Integer.valueOf(strings[1]);
    }
    }
      

  9.   

    写一个会写程序的程序,在被写的程序里调用1==2等内容,检查其返回值。
    这样可以把字面值"1==2"转化成程序语言,
    简单地说,就是用你的程序写一个程序(文本文件),然后用system指令调用系统中的编译器,生成一个程序(可执行的),运行,检测返回值。如果返回值不好检测,可以用类似于 system("java Test >OUT.txt");之类的语法,采用输出重定向,在OUT.txt中查看运行结果。如果以上办法行不通,只能自己编一个编译器了。
      

  10.   

    自己写个方法 转成int就好了吧。
      

  11.   

    恩,自几把字符串一拆分,然后转化成int,也可以