将字符串转换为布尔值--Java

将字符串转换为布尔值--Java,java,string,boolean,Java,String,Boolean,我一直在stackoverflow周围搜索,发现了一些关于将字符串转换为布尔值的其他问题,但我无法让它工作。也许这只是我试图使用它的方式是不正确的 无论如何,我试图将两个不同的输入字符串“M”或“I”转换为布尔值,以便在if语句中使用。基本上,我们希望功能是这样的: // the text that is retrieved is assumed to be either"M" or "I" M=Input.getText I=Input.getText If M shows the valu

我一直在stackoverflow周围搜索,发现了一些关于将字符串转换为布尔值的其他问题,但我无法让它工作。也许这只是我试图使用它的方式是不正确的

无论如何,我试图将两个不同的输入字符串“M”或“I”转换为布尔值,以便在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,很抱歉没有实际的代码可供使用,这是我的第一步,因此我没有围绕这一部分构建任何东西。

将此用于一个布尔值:

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
}

您可以使用
String
的方法检查它是否包含给定的文本值、等于它还是等于大小写

草案条件是:

if ("myValue".equalsIgnoreCase(myText)) {
    // TODO
}
else if ("myOtherValue".equalsIgnoreCase(myOtherText)) {
    // TODO
}
else {
    // TODO
}
以下是
java.lang.String
中的文档:


您还需要检查许多其他方法,例如
startsWith
endswith
,等等。

您只需使用
boolean b=Input.getText().equalsIgnoreCase(“YourTrueString”)
。此方法将检测输入文本是否与“YourTrueString”完全相同。否则,它将返回false。这样,任何不正确的东西都会变成错误。

来自伪代码

// 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
到爪哇

// 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
}

a) 你能提供更多的背景吗?目前还不清楚您计划如何实现这一目标,以及您希望如何使用结果b)漂亮的用户名您的意思是
if(m.equals(“m”)
?布尔值是如何确定
m
是否为
真的?只需检查字符串的值并将布尔值指定给变量即可。更好的是,将其作为一种方法。
if(“M”.equals(M)){…}else if(“I”.equals(I){…}else{…}
。或者,如果希望“M”或“I”位于M和I的任何位置,可以使用
if(M.contains(“M”)| I.contains(“I”))
从问题中可以清楚地看出,M和我调用了不同的操作,如果两者都不正确,则调用第三组操作。这并没有涵盖所有三种情况。为什么要将它们分配给变量?如果它们只需要计算一次,那么这是不必要的。您最好直接将检查放入
中>如果
条件出现在这些情况下。另外,字符串文字永远不能为
null,因此应始终将其置于左侧:
“M”。等于(M)
。对不起,兄弟,我完全理解你的意思,但问题是说将字符串转换为布尔值,如果他需要在代码的其他部分使用这些变量,他不需要使用其他if来检查。我说得对吗?是的,但在这种情况下,这也不是必需的。也许在你的答案中包括这两个选项?一个可以存储为布尔值的选项可以在以后重复使用,也可以在
if
表达式中对其求值。