如何在Java中将char转换为布尔值?

时间:2014-09-26 12:00:06

标签: java casting char boolean

我想在屏幕上显示一个有两个选项的问题(你结婚了吗?是/否)。用户必须按或“y”或“n”。之后,我想在屏幕上打印“已婚”或“未婚”。

我已经考虑过使用char来通过Scanner类(System.in)获取输入,并在将此char转换为布尔类型后,以显示带有if语句的两个选项。问题是我不知道如何将此char转换为布尔类型。是否有意义?是否有其他方式以不同的方式做这个例子?

非常感谢

5 个答案:

答案 0 :(得分:2)

是的,您尝试做的方式并不是制作场景。您可以执行以下操作

Scanner sc=new Scanner(System.in);
String st=sc.nextLine();
if("y".equalsIgnoreCase(st)){
  // married
}else if("n".equalsIgnoreCase(st)){
 // not married
}

答案 1 :(得分:1)

我认为一个枚举将是一个很好的方式。将规则封装在对象中。

将用户对对象的响应绑定是一种视图责任。输入是下拉列表还是文本框?

婚姻状况很有意思。有比“是/否”更多的口味:单身,已婚,离婚,分居,卡戴珊等。

public class MaritalStatus {
    MARRIED, NOT_MARRIED;
}

答案 2 :(得分:0)

很简单:

boolean isYes = (inputChar=='y' || inputChar=='Y');

您还可以将char转换为大写/小写,这样您就不需要||。取决于你有多少测试,如果它是值得的。

在这种情况下,并不需要这些括号,因为||的优先级高于赋值,但我个人觉得当括号中的“条件”括在括号中时更清楚。

答案 3 :(得分:0)

您不能简单地将char投射到boolean,但您可以将其与'y''n'进行比较

public static boolean charToBool(char c) {
    // c = Character.toLowerCase(c);
    switch (c) {
        case 'y':
            return true;
        case 'n':
            return false;
        default:
            throw new IllegalArgumentException("Must be either 'y' or 'n'.");
    }
}

答案 4 :(得分:0)

您无法将字符转换为布尔值,因为程序应该如何知道' y'意味着真实,并且' n'意味着错误? 使用if语句

bool married = false;
if(input.equalsIgnoreCase("y"))
    married = true;

我打赌一个简单的谷歌搜索可以帮助你完成你的作业。