解决方案 »
- 问大家一个简单的问题。很迷茫。。。。
- 帮忙用java做一下这个算法题
- 问个关于组播地址的简单问题!
- 当收到输入窗口的"确定"按钮才更新数据库,"放弃"则不更新,请问调用该输入窗体的函数怎么获得输入窗口的选择结果?
- 求救:Java连接mySQL数据库的问题
- 评价一下<java2 入门经典>这本书,我正想........
- 关于Struts中的ActionForm
- 本人把身上所有分送上(640)
- Java一般用于开发哪些项目?
- 请问mm.mysql的jdbc Driver是否支持jdbc2.0(ConnectionPool)?
- 请教大侠:用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编码
例子简单虽然做成,但是还没有完全封装,不过还是感谢各位兄弟姐妹
我觉得这个例子大家还可以讨论,就是散的分少了...