如何正确比较Java中的字符串(和对象)?

时间:2017-11-04 19:28:23

标签: java

对于用户试图猜测名称的迷你游戏。但是,当我想比较两个文本字符串只是为了检查是否相同似乎不起作用。

    final String miName = "Jhon";
    Scanner input = new Scanner(System.in);
    System.out.println("Guess my name: ");

    while (true) {
     String attempt = input.next();
     if(attempt == miName) {
       System.out.println("Congrats!");
       break;
     } else {
       System.out.println("Try it again!");
     }
    }

输出:

Guess my name:: 
Karl
Try it again!
jhon
Try it again!
Jhon
Try it again!

1 个答案:

答案 0 :(得分:0)

如果是.equals,则需要使用String

==仅在对象的地址匹配时(或在原始类型的情况下)给出trueObject类固有地比较.equals方法中的地址,如果您希望为两个对象的相等性编写自己的自定义逻辑,则需要覆盖.equals方法。

StringInteger等类已经覆盖了等号。