-6

我只是java新手并试图制作一个equals代码,但它不适用于==,只有.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");
            }

        }
    }
4

4 回答 4

1

我只是java新手并试图制作一个equals代码,但它不适用于==,只有.equals()不知道为什么

因为==比较对象引用而不是字符串的内容。你可以在JavaGeek找到一个很好的解释

  • ==检查两个变量是否引用同一个对象。
  • equals()方法检查对象的内容是否相同。
  • 所以如果==返回true,那么equals()方法也返回true,因为它们指的是同一个对象,因此它们是相等的(根据equals()合同,一个对象应该等于它自己)
于 2013-08-06T08:00:55.337 回答
0

尝试==使用字符串是检查引用等于。如果字符串完全相同,意思是引用同一个地方,那么它将是true,否则false

equals()检查字符串是否匹配,所以如果字符串包含相同的值,那么你会得到true

于 2013-08-06T08:01:08.610 回答
0

使用String.equals(String otherString)函数来比较字符串,而不是==运算符。

原因是==只比较object引用,其中 as .equals()检查相等性。

于 2013-08-06T08:00:56.960 回答
0

字符串只能与 进行比较.equals(),因为与==您比较不同的对象。

于 2013-08-06T08:00:59.890 回答