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