将来自Scanner的字符串输入转换为布尔值(“是”为true,“否”为false)

时间:2019-02-13 22:53:11

标签: java string if-statement boolean java.util.scanner

我编写了一个简单的程序,要求用户输入“是”或“否”。我使用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的值。谢谢。

0 个答案:

没有答案
相关问题