Java 跳过If语句

Java 跳过If语句,java,string,Java,String,所以基本上,当它要求你输入你的狗的名字时,它总是不正确的,即使你输入了Avagantomos。我仍然是个笨蛋,这让我很沮丧,所以非常感谢所有回复我的人。不要用==来比较字符串。使用equals(…)或equalsIgnoreCase(…)方法 了解==检查两个对象是否相同,这不是您感兴趣的。另一方面,这些方法检查两个字符串是否具有相同顺序的相同字符,这就是这里的问题所在。所以不是 import java.util.Scanner; public class Questionaire {

所以基本上,当它要求你输入你的狗的名字时,它总是不正确的,即使你输入了Avagantomos。我仍然是个笨蛋,这让我很沮丧,所以非常感谢所有回复我的人。

不要用
==
来比较字符串。使用
equals(…)
equalsIgnoreCase(…)
方法

了解
==
检查两个对象是否相同,这不是您感兴趣的。另一方面,这些方法检查两个字符串是否具有相同顺序的相同字符,这就是这里的问题所在。所以不是

import java.util.Scanner;

public class Questionaire {

  public static void main(String[] args) {

    String name;
    String ansOne;
    Scanner input = new Scanner(System.in);

    System.out.print("Hello, welcome to the super awesome quiz. Let's get things going. What is your name?");
    name = input.nextLine();
    System.out.print("Okay, hi " + name + " I'm just going to call you Bob.");
    System.out.print(" Question 1: What is the name of your dog?");
    ansOne = input.nextLine();

    if (ansOne == "Avagantamos") {
      System.out.print("Correct!");
    } else {
      System.out.print("Wrong! The correct answer was Avagantamos!");
    }

  }
}

或者


使用
String.compareTo()
(或
String.equals())
而不是
=

比较字符串时,请使用
.equals()
,而不是
=
。这是因为
=
根据引用标识比较对象,并且可能有多个
字符串
实例包含相同的数据。
.equals()
方法将比较
字符串的内容,这是您想要的。所以你应该写

if (fu.equalsIgnoreCase("bar")) {
  // do something
}
在本例中,似乎
input.nextLine()
正在构造一个新的
String
对象,这就是
==
不起作用的原因

顺便说一句,您可能想使用
System.out.println
而不是
.print
;否则,提示和输出将一起在一行上运行。

使用
ansOne.equals(“Avagantamos”)


=
比较对象的引用。

欢迎使用SO+1为某人回答你的问题提供所有必要的细节(你会惊讶地发现事实并非如此)。输入代码时,请尝试正确格式化,并缩进整个块4空格,以便使用固定宽度字体显示。在输入页面上有一个按钮
{}
,它将缩进选中的所有内容4个空格。安德鲁是为你做的,谢谢你!现在可以了。这个论坛上的反应是闪电般的。@JakubZieba:不客气。我们经常看到这个问题,所以如果它因为这个原因被关闭和删除,不要感到惊讶。
if (fu.equals("bar")) {
  // do something
}
if (fu.equalsIgnoreCase("bar")) {
  // do something
}
 if (ansOne.equals("Avagantamos")) {