java -change boolean to yes no

时间:2015-11-18 17:26:37

标签: java swing boolean

我有一个布尔数组,需要稍后向用户显示,而不是显示true或false我想显示yes或no。有人可以帮我这个吗?

    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]+"");
    }
}

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

4 个答案:

答案 0 :(得分:4)

你可以为它定义一个类似于

的方法
public String booleanToString(boolean b) {
    return b ? "yes" : "no";
}

我上面使用的是三元运算符。 它的工作原理如下:

boolean (expression) ? actionIfTrue : actionIfFalse

第一部分我觉得很容易。它只是任何表达式或变量或任何对布尔值进行计算或评估的东西。例如a == btrue

第二部分是actionIfTrue仅当表达式为true时才会调用它。 第3部分是actionIfFalse,仅当表达式为false时才会调用它。

它的作用类似于缩短的ifif语句中的上述内容如下所示:

if (b)
    return "yes";
else
    return "no";

像这样使用:

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

someMethod( booleanToString(a) + " xyz " + booleanToString(b) );

答案 1 :(得分:3)

这可以用于遍历数组并打印“是”或“否”:

            boolean[] newbirds = {false, true, true};
            StringBuilder sb = new StringBuilder();
            for(boolean bird : newbirds){
                sb.append(bird? "yes " : "no "); 
            }
            System.out.println(sb.toString());

答案 2 :(得分:1)

您可以使用ApacheCommons

从字符串到布尔

BooleanUtils.toBooleanObject(string)

从布尔值到字符串

BooleanUtils.toString(boolVal,"Yes","No")

答案 3 :(得分:0)

   // Use ternary operator :

    String yesOrNo = condition?result1:result2
   // so if condition is true the returned value will be result1 else it will be result2. 

    JOptionPane.showMessageDialog(null, newbirds[0]?"Yes":"No"+" "+newbirds[1]?"Yes":"No"+" "+newbirds[2]?"Yes":"No"+" "+newbirds[3]?"Yes":"No"+" "+ newbirds[4]?"Yes":"No");

  //  or you can make a method to get the value.

    String yesOrNo(boolean b){
       return b?"Yes":"No";
    }

    //use it like
    JOptionPane.showMessageDialog(null,yesOrNo(newbirds[index]));