我只是java的新手并试图创建一个等于代码,但它不适用于==,只有.equals()不确定原因。
import java.lang.*;
import java.util.*;
public class password
{
public static void main(String args[])
{
Scanner Keyboard = new Scanner(System.in);
String guess = Keyboard.newLine();
String password = "1password";
if (guess == password) {
System.out.println("Welcome");
} else {
System.out.println("Login Failed");
}
}
}
答案 0 :(得分:1)
我只是java的新手,并尝试制作一个等于代码,但它不适用于==,只有.equals()不知道为什么
因为==
比较对象引用而不是字符串的内容。
您可以在theJavaGeek
==
检查两个变量是否引用同一个对象。equals()
方法检查对象的内容是否相同。==
返回true,那么equals()
方法也会返回true,因为它们指的是同一个对象因此它们是相等的(按equals()
契约一个对象应该等于它自己)答案 1 :(得分:0)
使用String.equals(String otherString)
函数比较字符串,而不是==
运算符。
原因是==
只比较object
引用,其中.equals()
检查相等性。
答案 2 :(得分:0)
字符串只应与.equals()
进行比较,因为使用==
可以比较不同的对象。
答案 3 :(得分:0)
尝试使用字符串==
检查引用等于。如果字符串完全相同,意味着引用同一个地方,那么它将是true
,否则false
执行equals()
检查字符串是否匹配,因此如果字符串包含相同的值,那么您将获得true