所以这是一个愚蠢的问题,但由于某些原因,这对我不起作用。这是我正在尝试做的一个小程序的一小部分,我正在调试但是一个简单的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但它不会进入并打印它.....奇数。我不知道有什么蠢事吗?
答案 0 :(得分:5)
你想要
if (expr.equals("Enqueue")) {
==
与Strings一起使用是不安全的。该运算符将两个引用进行相等性比较,只有当两个引用指向同一个实例时才会为true。在这种情况下,您有两个具有相同值的不同实例。要进行价值比较,我们使用.equals()
。