根据字符串值(String str1 ="1=1";),把其看做布尔表达式,得到true或false。 本帖最后由 zhuchuankun_yy 于 2012-02-07 10:41:44 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个相当于要做模拟计算和逻辑判断了,找找开源工具包吧。我记得这个还可以:QLExpress这里有简单介绍:http://www.open-open.com/lib/view/open1326886081405.html 1=1在程序里面赋值是编译通不过的得用1==1 2==3才行ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript"); Object object2 = engine.eval("2==3"); System.out.println(object2);不过得jdk1.6来支持 ScriptEngine 、ScriptEngineManager是那个包路径import啊 javax.script.ScriptEngineManager话说4楼的不错,俺生活在1.4的人表示之前完全不知道有这么个东东。 可以的。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()); 此问题的使用场合: 如果数据库查询次数频繁到影响性能,改为在java中判断表达式, 这样可以提高系统的运行性能。 String str1 ="1 ==1";String str2 ="2 ==3";if(str1.equals("true")){System.out.println("String str1 ="1 ==1"是true");}//以下同理 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]); }} 写一个会写程序的程序,在被写的程序里调用1==2等内容,检查其返回值。这样可以把字面值"1==2"转化成程序语言,简单地说,就是用你的程序写一个程序(文本文件),然后用system指令调用系统中的编译器,生成一个程序(可执行的),运行,检测返回值。如果返回值不好检测,可以用类似于 system("java Test >OUT.txt");之类的语法,采用输出重定向,在OUT.txt中查看运行结果。如果以上办法行不通,只能自己编一个编译器了。 自己写个方法 转成int就好了吧。 恩,自几把字符串一拆分,然后转化成int,也可以 怎么在一个标签上显示另一个标签 基于点击监听的图片放大 寻找J2me的帮助文档 DecimalFormat的几个问题 IO流问题.(求救) hibernate的问题,请大家给予指教 课本上的一个题目不会做 (求助)Java在XP下的环境配置,和JCreator的基本安装和配置? 新手问个jdk源码的问题 一个有关HashMap取值的问题 quartz动态定时器cron表达式如何表示每间隔79分钟执行一次? JAVA编译jar文件问题,大家来关注下
http://www.open-open.com/lib/view/open1326886081405.html
得用1==1 2==3才行
ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript");
Object object2 = engine.eval("2==3");
System.out.println(object2);
不过得jdk1.6来支持
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());
如果数据库查询次数频繁到影响性能,改为在java中判断表达式,
这样可以提高系统的运行性能。
String str1 ="1 ==1";
String str2 ="2 ==3";
if(str1.equals("true"))
{
System.out.println("String str1 ="1 ==1"是true");
}//以下同理
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]);
}
}
这样可以把字面值"1==2"转化成程序语言,
简单地说,就是用你的程序写一个程序(文本文件),然后用system指令调用系统中的编译器,生成一个程序(可执行的),运行,检测返回值。如果返回值不好检测,可以用类似于 system("java Test >OUT.txt");之类的语法,采用输出重定向,在OUT.txt中查看运行结果。如果以上办法行不通,只能自己编一个编译器了。