Java 我试图在控制台中输入一行,并使用以下代码查看它是否等于字符串:

Java 我试图在控制台中输入一行,并使用以下代码查看它是否等于字符串:,java,eclipse,console,Java,Eclipse,Console,这是我的代码,用于查看控制台输入是否等于字符串 boolean Cool1 = ask("rlrlrl"); public boolean ask(String a) { String b = scan.nextLine(); out("You put: " + b); if (b == a) { System.out.println("Good!"); return true; } else { System.out.println(

这是我的代码,用于查看控制台输入是否等于字符串

boolean Cool1 = ask("rlrlrl");


public boolean ask(String a) {
    String b = scan.nextLine();
    out("You put: " + b);
    if (b == a) {
    System.out.println("Good!");
    return true;
    } else {
    System.out.println("Ugly");
    return false;
    }
}

这总是返回false。为什么?

您应该使用.equals方法来比较字符串内容。==将仅检查对象的引用

在函数内部打印a,看看a是否真的等于b字符串比较使用a.equals(b)比a==b(它检查引用,而不是相等)效果更好