我想在屏幕上显示一个有两个选项的问题(你结婚了吗:y/n)。用户必须按或“y”或“n”。之后,我想在屏幕上打印“已婚”或“未婚”。如何将char转换为Java中的布尔值?
我想过在使用char来获得输入通过Scanner类(System.in)并将此char转换为布尔类型以便用if语句显示两个选项后。问题是我不知道如何将此char转换为布尔类型。是否有意义?有其他方式以不同的方式来做这个例子吗?
非常感谢
我想在屏幕上显示一个有两个选项的问题(你结婚了吗:y/n)。用户必须按或“y”或“n”。之后,我想在屏幕上打印“已婚”或“未婚”。如何将char转换为Java中的布尔值?
我想过在使用char来获得输入通过Scanner类(System.in)并将此char转换为布尔类型以便用if语句显示两个选项后。问题是我不知道如何将此char转换为布尔类型。是否有意义?有其他方式以不同的方式来做这个例子吗?
非常感谢
是的,你试图做的方式是不做场景。你可以做如下
Scanner sc=new Scanner(System.in);
String st=sc.nextLine();
if("y".equalsIgnoreCase(st)){
// married
}else if("n".equalsIgnoreCase(st)){
// not married
}
很简单:
boolean isYes = (inputChar=='y' || inputChar=='Y');
你也可以转换的char /小写,所以你不会需要||
。取决于你有多少测试,如果它是值得的。
在这种情况下,那些括号并不是真的需要,因为||
比赋值有更高的优先级,但是我个人发现,当像这样的“条件”包含在括号中时,它会更清晰。
我认为枚举是一个很好的方法。将规则封装在对象中。
将用户响应绑定到对象是一种视图责任。输入是下拉菜单还是文本框?
婚姻状况是一个有趣的。还有比“是/否”多口味:单身,已婚,离婚,分居,卡戴珊等
public class MaritalStatus {
MARRIED, NOT_MARRIED;
}
你不能简单地投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'.");
}
}
你不能将一个字符转换成布尔值,因为程序应该如何知道'y'表示真,'n'表示假? if语句
bool married = false;
if(input.equalsIgnoreCase("y"))
married = true;
我敢打赌,一个简单的谷歌搜索 使用会帮助你做作业。
无需投射。只需检查'if(ch =='y'|| ch =='Y'){...} else {...}'其中'ch'是您的'char' – pzaenger 2014-09-26 12:03:01
初学者,不要使用布尔值,使用枚举 – user902383 2014-09-26 12:04:49