解决方案 »
- sudo: ./jdk-6u29-linux-i586.bin: command not found 求助
- 问2个java问题,已经问了不少人了
- 急……关于ActiveX控件的下载问题
- 怎么把select标签的内容超连接到其它页面?
- 为什么用JDBC往数据库读写汉字会出现乱码?如何解决?
- java 虚拟机的问题
- 请教如何学java
- 今天在看MVC架构,觉得很抽象,哪位可以给我一个MVC架构的程序例子看看,不胜感谢!
- 问题,指教,谢!
- 为什么我启动jswdk,给我的是out of memory space
- 请教大侠:用JBuilder 2005 生成javadoc 时,提示请增加内存,如何增加JBuilder中JVM的内存?如何在控制台生成javadoc?
- 困扰我两天了, 锁对象打死都锁不住? 求高手解答!! 标题要长.........................
public static void main(String[] args) {
String param = "TRUE";
Boolean boo = Boolean.parseBoolean(param);
if (boo) {
System.out.println("123");
} else {
System.out.println("456");
} }意思理解错了
仔细想了下。。明白LZ意思了,这里有个实现。瞧瞧。
String ss = "2000<1";
String[] array = null;
String compareble = null;
boolean boole;
if (ss.contains(">")) {
array = ss.split(">");
compareble = ">";
} else {
array = ss.split("<");
compareble = "<";
} int[] aaa = new int[2];
for (int i = 0; i < array.length; i++) {
aaa[i] = Integer.parseInt(array[i]);
System.out.println(aaa[i]);
}
if (compareble.equals(">")) {
boole = aaa[0] > aaa[1];
} else {
boole = aaa[0] < aaa[1];
}
if (boole) {
System.out.println("123");
} else {
System.out.println("345");
}
}}
自己在包装一下
public class Test {
public static void main(String[] args) {
Interpreter i=new Interpreter();
String a="2>1";
try {
Boolean b=(Boolean) i.eval(a);
if(b){
System.out.println("123");
}else{
System.out.println("456");
}
} catch (EvalError e) { e.printStackTrace();
} }}
输出为123
只能一个字符一个字符的类型转换了吧。
google搜索关键字Java 数学公式。
1,拼一个SQL语句,丢数据库里执行获得结果。
2,利用Javascript的eval函数,转换得到。
第二个参考
http://ruyuntao.javaeye.com/blog/406935
使用的是ScriptEngine
public class Test2 { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String s = "2221>1111";
int a = 0;
int b = 0;
if(s.indexOf(">")>0){
int i = s.indexOf(">");
a = Integer.parseInt(s.substring(0, i));
b = Integer.parseInt(s.substring(i+1));
System.out.println(a > b);
}
}
}
只想到了这个笨方法,不过只是分割这么小的字符串,应该不存在效率问题
如果jdk在1.6以上,可以用java标准库javax.script包做。这里有个例子。
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;public class ExpressionCalculate {
public static void main(String[] args){
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("javascript");
boolean result = false;
try {
result = Boolean.parseBoolean(engine.eval("2>3").toString());
} catch (ScriptException e) {
e.printStackTrace();
}
System.out.println("result is:"+result);
}
}
读取的xml:
<ids>
<id id="零件" name="零件">
<type>重金属</type>
<condition>
<param>cost>0</param>
<param>price<100</param>
<param>type==普通钢材</param>
<result>NOR_</result>
</condition>
</id>
</ids>我要读取<param>标签里面的值作为将来if判断括号里的条件
用javascript的那个方法好像就不行了吧
程序不会写死...大家有何种建议?例如param里面的cost实际上就是一个类的字段名
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;public class ExpressionCalculate {
public static void main(String[] args){
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("javascript");
boolean result = false;
try {
engine.put("action", new ScriptObject());
Object obj = engine.eval("action.print(action.getCount()+\"\");" +
"action.getCount()>5");
System.out.println("obj is:"+obj);
} catch (ScriptException e) {
e.printStackTrace();
}
System.out.println("result is:"+result);
}
}
class ScriptObject{
private int count = 0;
public void print(String printText){
System.out.println("script print:\n"+printText);
}
public int getCount(){
return count;
}
}
可以在脚本里调用java代码
举个例子<param>price<100 </param>改成<param operate="lt" propertie="price">100</param>然后Java代码中写入大于,小于,等于,或者其他类型的操作,根据operate的不同调用不同的操作方式。
参考commondo模式写这个架构应该不错。个人人为XML里出现html转意字符貌似不大好。
需求是这样:
根据XML里面的规则生成id
可以随时修改xml里面的条件,
在不用修改代码的情况下生成xml对应的ID编码
例子简单虽然做成,但是还没有完全封装,不过还是感谢各位兄弟姐妹
我觉得这个例子大家还可以讨论,就是散的分少了...