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!");
}
}
}
所以基本上,当它要求你输入你的狗的名字时,它总是不正确的,即使你输入Avagantamos。我仍然是真正的菜鸟,这真的令人沮丧,所以非常感谢你的回应。
答案 0 :(得分:9)
不要使用==
来比较字符串。使用equals(...)
或equalsIgnoreCase(...)
方法。
了解==
检查两个对象是否相同而不是您感兴趣的内容。另一方面,这些方法检查两个字符串是否具有相同的字符按照相同的顺序,这就是重要的事情。而不是
if (fu == "bar") {
// do something
}
做,
if (fu.equals("bar")) {
// do something
}
,或者
if (fu.equalsIgnoreCase("bar")) {
// do something
}
答案 1 :(得分:2)
使用String.compareTo()
(或String.equals())
代替==
答案 2 :(得分:2)
比较字符串时,请使用.equals()
,而不是==
。这是因为==
根据引用标识比较对象,并且可能有多个String
实例包含相同的数据。 .equals()
方法将比较String
s的内容,这是您想要的。所以你应该写
if (ansOne.equals("Avagantamos")) {
在这种情况下,似乎input.nextLine()
正在构建一个新的String
对象,这就是==
不起作用的原因。
顺便提一下,您可能希望使用System.out.println
而不是.print
;否则提示和输出将一起在一行上运行。
答案 3 :(得分:1)
使用ansOne.equals("Avagantamos")
==
比较对象的引用。