所以这是一个愚蠢的问题,但是由于某种原因,这对我不起作用。这只是我要尝试的一个小程序的一小部分,我正在调试,但是一个简单的if语句由于某种原因无法正常工作。这是下面的代码:
System.out.println("Enter a command (Enqueue, Dequeue, or Quit): ");
String expr = input.next();
System.out.println(expr);
if (expr=="Enqueue") {
System.out.println("Enqueue");}
因此,它应该简单地获取输入,如果我在提示中输入Enqueue,则应将其打印出来。问题在于它没有这样做。当我检查变量expr的值时,它的确显示为字符串Enqueue,但没有插入并打印出来.... odd。我缺少什么笨蛋吗?
最佳答案
你要
if (expr.equals("Enqueue")) {
==
与字符串一起使用并不安全。该运算符比较两个引用是否相等,仅当两个引用指向同一实例时才为真。在这种情况下,您有两个具有相同值的不同实例。为了进行值比较,我们使用.equals()
。