字符串值到布尔检查

时间:2013-09-12 16:51:22

标签: java

我有四个字符串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;

4 个答案:

答案 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)

  1. 您需要使用equals()来比较Java中的字符串值。

  2. 要优化布尔表达式,请使用表格。将所有可能的值和预期结果放在一起:

    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. 您的代码中存在大量拼写错误;你真的应该修理它们。

答案 3 :(得分:0)

嗯...

我假设了几件事。

  • flag = flag。
  • flags可以是布尔值。

这是我的方法。

Boolean flag[4];

//initialize flags somehow. 

if(flag[1] && flag[2]){
    if(flag[3] && flag[4])
        condition = true;
    else
        condition = false;
}else{ 
     return null;
}