我有四个字符串falgs将这些值作为字符串a []。
falg1 = Y or N
falg2= Y or N
falg3= Y or N
falg4= Y or N
基于以上的谬误,我正在检查下面的案例。这是正确的做法还是你有更好的appraoch?
if (falg1.equals("Y")) {
if (falg2.equals("Y")) {
if (falg3.equals("Y") && falg4.equals("Y")) {
condition = true;
} else
condition = flase;
} else
return null;
} else
return null;
答案 0 :(得分:1)
=
是赋值不平等。您无法使用==
检查字符串相等性,因为它是一个对象,您必须使用string1.equals(string2)
。
如果您想继续使用“Y”或“N”,则可以使用char
标记,然后可以使用==
检查char
之间是否相等。
但是,使用boolean
flag1,flag2,flag3和flag4会更容易。这样你就可以这样做:
boolean flag1, flag2, flag3, flag4;
// set all flags to whatever values
if (flag1 && flag2)
{
if (flag3 && flag4)
condition = true;
else
condition = false;
}
else
{
return null;
}
答案 1 :(得分:0)
if (!falg1.equals("Y") || !falg2.equals("Y"))
return null;
return falg3.equals("Y") && falg4.equals("Y");
这假设没有值可以为null。你可以通过"Y".equals(falg1)
答案 2 :(得分:0)
您需要使用equals()
来比较Java中的字符串值。
要优化布尔表达式,请使用表格。将所有可能的值和预期结果放在一起:
flag1 flag2 flag3 flag4 | result
----------------------------------
N N N N | null
Y N N N | null
N Y N N | null
Y Y N N | null
N N Y N | null
...
Y Y Y Y |真
执行此操作时,您会经常看到一个可以帮助您优化代码的模式。请参阅Truth Tables。
您的代码中存在大量拼写错误;你真的应该修理它们。
答案 3 :(得分:0)
嗯...
我假设了几件事。
这是我的方法。
Boolean flag[4];
//initialize flags somehow.
if(flag[1] && flag[2]){
if(flag[3] && flag[4])
condition = true;
else
condition = false;
}else{
return null;
}