java - 将布尔值更改为是 否

dul*_*ldi -2 java swing boolean

我有一个布尔数组,稍后需要将它们显示给用户,而不是显示真或假,我想显示是或否。有人可以帮我吗?

    public static boolean[] seen (boolean[] birds)
    {   String quit = "100";
        String ans = "";
        while(!ans.equals(quit))
        {   ans=JOptionPane.showInputDialog(null,"Which bird are you reporting? \n   1) Blue Tit\n   2) Blackbird\n   3) Robin\n   4) Wren\n   5) Greenfinch");
            if (ans.equals("1"))
            {   birds[0]=true;
            }
            else if (ans.equals("2"))
            {   birds[1]=true;
            }
            else if (ans.equals("3"))
            {   birds[2]=true;
            }
            else if (ans.equals("4"))
            {   birds[3]=true;
            }
            else if (ans.equals("5"))
            {   birds[4]=true;
            }
        }
        return birds;   
    }
public static void display(boolean[] newbirds)
    {   JOptionPane.showMessageDialog(null,"newbirds[0]+" "+newbirds[1]+" "+newbirds[2]+" "+newbirds[3]+" "+ newbirds[4]+"");
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望数组 newbirds[i] 显示为是或否格式,有人可以帮忙吗?

Mib*_*bac 5

您可以像这样为它定义一个方法

public String booleanToString(boolean b) {
    return b ? "yes" : "no";
}
Run Code Online (Sandbox Code Playgroud)

我上面使用的称为三元运算符。它是这样工作的:

boolean (expression) ? actionIfTrue : actionIfFalse
Run Code Online (Sandbox Code Playgroud)

第 1 部分我认为很容易。它只是任何表达式或变量,或者是或计算为布尔值的任何事物。例如a == btrue

第二部分是actionIfTrue仅在表达式为true. 第三部分是actionIfFalse仅在表达式为false.

它的工作原理类似于缩短的if. 上面的if语句看起来像这样:

if (b)
    return "yes";
else
    return "no";
Run Code Online (Sandbox Code Playgroud)

像这样使用它:

boolean a = false;
boolean b = !a;
// etc

someMethod( booleanToString(a) + " xyz " + booleanToString(b) );
Run Code Online (Sandbox Code Playgroud)