我一直在搜索stackoverflow,我发现了一些关于将字符串转换为布尔值的其他问题,但我无法使其工作。也许这只是我尝试使用它的方式不正确。
无论如何,我试图将两个不同的输入字符串“M”或“I”转换为boolean,以便在if语句中使用。基本上希望功能是:
// the text that is retrieved is assumed to be either"M" or "I"
M=Input.getText
I=Input.getText
If M shows the value "M",
do stuff here
else if I shows the value "I",
do stuff here
else if neither above are true,
throw an exception here
我尝试过任意数量的“toBoolean”和“Boolean.valueof”,但我尝试的都没有。
PS,很抱歉没有真正的代码可以使用,这是我的第一步,因此我没有围绕这件事构建任何东西。
答案 0 :(得分:6)
您可以使用String
的方法来检查它是否包含给定的文字值,等于它,或等于忽略大小写。
草案条件是:
if ("myValue".equalsIgnoreCase(myText)) {
// TODO
}
else if ("myOtherValue".equalsIgnoreCase(myOtherText)) {
// TODO
}
else {
// TODO
}
以下是java.lang.String
中的文档:
您还想检查许多其他方法,例如startsWith
,endswith
等。
答案 1 :(得分:1)
将此用作一个布尔值:
boolean b = (M.equals("M") || I.equals("I"));
或者两个布尔值:
boolean booleanM = (M.equals("M"));
boolean booleanI = (I.equals("I"));
if(booleanM){
//do stuff here
}else if(booleanI){
//do stuff here
}else{
//do stuff here where both are false
}
如果你需要验证多次,这是更快的方法,只有一次使用它:
if(M.equals("M")){
//do stuff here
}else if(I.equals("I")){
//do stuff here
}else{
//do stuff here where both are false
}
答案 2 :(得分:0)
您只需使用boolean b = Input.getText().equalsIgnoreCase("YourTrueString")
即可。此方法将检测输入文本是否与“YourTrueString”完全相同。如果没有,它将返回false。这样任何不真实的东西都会变成错误。
答案 3 :(得分:0)
来自您的伪代码
// the text that is retrieved is assumed to be either"M" or "I"
M=Input.getText
I=Input.getText
If M shows the value "M",
do stuff here
else if I shows the value "I",
do stuff here
else if neither above are true,
throw an exception here
致Java
// In its own method for reuse, in case you want to extend character support
public boolean match(String character, String match) {
return character.equals(match);
}
然后您可以调用这个简单的方法
String m = Input.getText();
String i = Input.getText();
if (match(m, "M")) {
do stuff here
} else if (match(i, "I")) {
do stuff here
} else {
throw an exception here
}