Java 中扫描器输入的 if 语句 [duplicate]

if statement for scanner inputs in java [duplicate]

提问人:06ov 提问时间:9/17/2020 更新时间:9/17/2020 访问量:35

问:

我希望代码是,如果输入“射击”,那么它会打印“很好,你杀死了僵尸” 如果用户输入“不要开枪”,那么它会打印“哦不,僵尸杀了你”

这是我到目前为止所做的,但它不会打印出任何东西。

    public static void main(String[] args) {
        System.out.println("ZOMBIE AHEAD!");
        Scanner kb = new Scanner(System.in);
        String action1 = "shoot";
        String action2 = "don't shoot";
        String str = kb.nextLine();
        if (str == action1) {
            System.out.println("Nice, you killed the zombie!");
        } else if (str == action2)  {
            System.out.println("Oh no, the zombie killed you!");
        }
    }
}
java if-statement io java.util.scanner

评论

4赞 9/17/2020
这回答了你的问题吗?如何在 Java 中比较字符串?

答:

0赞 Spectric 9/17/2020 #1

使用以下命令:

    public static void main(String[] args) {
        System.out.println("ZOMBIE AHEAD!");
        Scanner kb = new Scanner(System.in);
        String action1 = "shoot";
        String action2 = "don't shoot";
        String str = kb.nextLine();
        if (str.equals(action1)) {
            System.out.println("Nice, you killed the zombie!");
        } else if (str.equals(action2))  {
            System.out.println("Oh no, the zombie killed you!");
        }
    }
}

您必须使用 .equals() 来比较字符串。

评论

1赞 Maksym Rudenko 9/17/2020
我还建议将顺序从更改为 .这种方法可以避免可能的 NullPointer 异常str.equals(action1)action1.equals(str)
0赞 Spectric 9/17/2020
非常好的观点。