我编写了一个简单的程序,要求用户输入“是”或“否”。我使用String
将输入存储到Scanner
。我还将boolean
设置为false
。
然后,我使用if
语句检查用户的输入并将相应的值分配给boolean
。如果用户输入“是”,则boolean
设置为true
,反之亦然。
接下来,我打印boolean
。每次我运行程序时,boolean
都保持为false
,并且if
语句默认为我的最后一个else
块,该块会打印一个String
,显示为“错误“。
我尝试在没有Scanner
的情况下执行此操作,只是在代码中将String
设置为“是”或“否”。它工作得很好,并且if
语句更改了boolean
的值并正确打印。这可能有效,但这不是我想要程序执行的操作。我希望它接受String
的用户输入。
import java.util.Scanner;
public class StringToBoolean {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Please enter yes or no");
String yesOrNo = input.nextLine();
boolean trueOrFalse = false;
if (yesOrNo == "yes") {
trueOrFalse = true;
} else if (yesOrNo == "no") {
trueOrFalse = false;
} else {
System.out.println("Error");
}
System.out.println(trueOrFalse);
}
}
我不确定为什么会这样,但是Scanner
似乎是一个问题。请让我知道是否有一种方法可以用String
接受Scanner
的值,然后使用输入来设置boolean
的值。谢谢。