Java 要进行布尔检查的字符串值

Java 要进行布尔检查的字符串值,java,Java,我有四个字符串falg将这些值作为字符串a[]获取 falg1 = Y or N falg2= Y or N falg3= Y or N falg4= Y or N 基于以上错误,我正在检查以下情况。这是正确的做法还是你有更好的方法 if (falg1.equals("Y")) { if (falg2.equals("Y")) { if (falg3.equals("Y") && falg4.equals("Y")) {

我有四个字符串falg将这些值作为字符串a[]获取

falg1 = Y or N

falg2=  Y or N

falg3=  Y or N 

falg4=  Y or N
基于以上错误,我正在检查以下情况。这是正确的做法还是你有更好的方法

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;

这是假设所有值都不能为null。你可以通过做“Y”来处理这个问题。等于(falg1)

=
不是赋值相等。不能使用
==
检查字符串是否相等,因为它是一个对象,所以必须使用
string1.equals(string2)

您可以使用
char
标志,如果您想继续使用“Y”或“N”,则可以使用
=
检查
char
s之间是否相等

但是,只使用
布尔值
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;
}
  • 您需要使用
    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
    ...
    
    是的

    当您这样做时,您经常会看到一个模式出现,它将帮助您优化代码。看

  • 你的代码中有很多拼写错误;你真的应该把它们修好

  • 我假设有几件事

    • falg=旗帜
    • 标志可以是布尔值
    这是我的方法

    Boolean flag[4];
    
    //initialize flags somehow. 
    
    if(flag[1] && flag[2]){
        if(flag[3] && flag[4])
            condition = true;
        else
            condition = false;
    }else{ 
         return null;
    }
    

    这不是你真正的代码——它是无效的Java。我们检查无效代码是毫无意义的。你的意思是写
    ==
    ?我想你的意思是“flag”,而不是“falg”。你的“falg”变量是如何声明的?更新了我的问题。很抱歉错过了。我只给出了psuedo代码。这可以缩短为
    条件=flag1&&flag2&&flag3&&flag4
    。不是真正的@Femaref,应该是:
    return(flag1和&flag2)?(flag3和&flag4):空
    
    Boolean flag[4];
    
    //initialize flags somehow. 
    
    if(flag[1] && flag[2]){
        if(flag[3] && flag[4])
            condition = true;
        else
            condition = false;
    }else{ 
         return null;
    }