我正在编写一个简单的程序来掌握使用Java中的Scanner。该程序具有user_1的存储值并要求用户提供 String变量用户名然后使用==运算符对user_1进行检查,但即使用户名与user_1匹配,它仍然会计算为false。我确定我必须遗漏一些简单的东西,任何帮助都会受到赞赏。我甚至添加了行打印两个变量只是为了仔细检查它们是相同的!!
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
String user_1 = ("lucasRHCP");
Scanner input = new Scanner(System.in);
System.out.println("Enter your username: ");
String username = input.nextLine();
System.out.println(user_1 + " " + username);
if (username == user_1){
System.out.println("True");
}
else {
System.out.println("False");
}
}
}
答案 0 :(得分:2)
永远不要将对象(和String是一个对象)与==
进行比较,使用equals()
方法
答案 1 :(得分:2)
使用==
比较两个对象是否相同,而不是它们的值是否相同。您想要比较它们的值,因此您需要使用.equals()
:
if (username.equals(user_1)) {
System.out.print("True");
} else {
System.out.print("False");
}
比较两辆红色相同的汽车,它们是完全相同但却不一样。在java中,两个变量既可以是相同的,也可以是两个不同的相似的东西。
答案 2 :(得分:0)
您无法使用==
比较java中的字符串您应该使用String类方法
username.equals(user_1);