Java我有一个字符串变量";a>;百安居酒店&;z>;c&&;x==y";我想转换成一个正常的if条件表达式 inta=0;int z=0;int c=0;int x=0;int y=0;再 字符串myarray[0]=“a>b&&z>c&&x==y”; String myarray[1]=“ac&&x
您无法在Java中执行这样用Java我有一个字符串变量";a>;百安居酒店&;z>;c&&;x==y";我想转换成一个正常的if条件表达式 inta=0;int z=0;int c=0;int x=0;int y=0;再 字符串myarray[0]=“a>b&&z>c&&x==y”; String myarray[1]=“ac&&x,java,string,if-statement,Java,String,If Statement,您无法在Java中执行这样用字符串编写的表达式,并获取周围程序的上下文--a,等等。您可以使用Javascript引擎计算自包含表达式,但这并不能解决实际问题 您可以做的是将其设置为布尔值数组: int a=0;int z=0;int c=0;int x=0;int y=0; any more String myarray[0] = "a>b && z>c && x==y"; String myarray[1] = "a<b &&
字符串编写的表达式,并获取周围程序的上下文--a
,等等。您可以使用Javascript引擎计算自包含表达式,但这并不能解决实际问题
您可以做的是将其设置为布尔值
数组:
int a=0;int z=0;int c=0;int x=0;int y=0; any more
String myarray[0] = "a>b && z>c && x==y";
String myarray[1] = "a<b && z<c && x==y";
String myarray[2] = "a>b && z>c && x<=y";
String myarray[n]
for(i=0;i<myarray.size();i++){
if(myarray[i]){
here code..
}
}
boolean[]myarray=new boolean[4];
myarray[0]=a>b&&z>c&&x==y;
myarray[1]=ac&&x您可以在Java中完成它,只需做一些样板工作
boolean[] myarray = new boolean[4];
myarray[0] = a>b && z>c && x==y;
myarray[1] = a<b && z<c && x==y;
myarray[2] = a>b && z>c && x<=y;
...
for(int i=0;i<myarray.length;i++){
if(myarray[i]){
// whatever
}
}
请记住,这将对每个表达式求值一次且仅求值一次。即,如果a
的值更改,这些更改将不会反映在myarray
myarray[i]=false??不运行a>b&&z>c&&x==y或a@cihad7887,什么?这种方法设置myarray[i]
以确定该表达式的结果是真还是假,而不是表达式本身,这是无法做到的,然后对其求值。抱歉,我不理解我的错误。我在myarray.add(rs.getBoolean(“column”);在myarray.get(0)之后创建List myarray=new ArrayList();在myarray.get(1)之后添加(rs.getBoolean(“column”);在myarray.get(0)之后创建false myarray.get(1)-->false??如何转换if的条件?…是吗?然后会发生什么?
public interface Expression {
boolean evaluate();
}
public class Expression1 implements Expression {
Integer a;
Integer b;
Integer c;
Integer x;
Integer y;
Integer z;
public Expression1(Integer a, Integer b, Integer c, Integer x, Integer y, Integer z){
this.a = a;
this.b = b;
// ... the rest
}
public boolean evaluate(){
return a>b && z>c && x==y;
}
}
// the other Expression# classes
Expression[] expressions = new Expression[4];
expressions[0] = new Expression1(a,b,c,x,y,z);
expressions[1] = new Expression2(a,b,c,x,y,z);// make Expression2/Expression3/Expression4 classes
for(Expression expression : expressions){
if(expression.evaluate()){
// your code here
}
}