Java: 最后的字符串比较不起作用

Java: final string comparison does not work

我已经为某些命令创建了最终字符串,但是当我尝试检查用户给出的命令是否匹配时,它不起作用。

这些是我最终字符串的示例:

public static final String END = "quit";
public static final String SHOW = "print";

但是如果我要使用它,例如像这样:

String command = scanner.nextLine();
if (command == SHOW) {
   System.out.println("Print this line.");
}

一看就是配不配。我尝试打印最终变量:

System.out.println(END);

并打印出它的值,但出于某种原因,当我将它们与用户提供的相同字符串进行比较时,它无法识别它们。

我曾尝试搜索类似的示例并阅读有关最终确定变量的内容,但我认为我遗漏了一些重要的东西。我知道问题出在最终变量而不是其他地方,因为如果我将这些相同的字符串与相等的进行比较,程序就会工作。例如:

String command = scanner.nextLine();
if (command.equals("print") {
   System.out.println("Print this line.");
}

我假设我做错了一些非常简单的事情,但我找不到任何我能理解的答案。我仍然是初学者,关于类似问题的所有其他示例都包含一些我不理解的功能,因此它们无法帮助我了解我做错了什么。

String command = scanner.nextLine();
if (command.equals(SHOW) {
   System.out.println("Print this line.");
}

这样使用。 (回答您的评论)