布尔值和如果错误

Boolean and if mistake

我的代码有问题。这是过程 -

可以毫无问题地输入姓名和年龄,但程序评估密码时出现错误。当您正确输入密码时,它仍然returns为假。

请帮帮我!! 谢谢

    import java.util.Scanner;

    public class MyClass {

    public static void main(String[] args) {
        String name;
        int age;
        boolean trueOrFalse;
        boolean trueOrFalse2;

        String builtInPassword = "anybody";

        Scanner keyBoardInput = new Scanner(System.in);

            System.out.print("Please enter your First name: ");
            name = keyBoardInput.next();
            System.out.print("Please enter your age: ");
            age = keyBoardInput.nextInt();
            trueOrFalse = false;
            trueOrFalse2 = true;
            System.out.print("Please enter your Password: ");
        if (keyBoardInput.next() == builtInPassword) {
            System.out.println(trueOrFalse2);
        } else {
            System.out.println(trueOrFalse);
        } 

    }
}

在 Java 中比较两个字符串时,您需要使用 .equals() 方法。这将比较两个字符串的值,而 == 将比较引用。

String test = "test";
if(test.equals("test")) {
    //Do something
}

您需要像这样在字符串上使用 .equals():

public static void main(String[] args) {
    String name;
    int age;
    boolean trueOrFalse;
    boolean trueOrFalse2;

    String builtInPassword = "anybody";

    Scanner keyBoardInput = new Scanner(System.in);

        System.out.print("Please enter your First name: ");
        name = keyBoardInput.next();
        System.out.print("Please enter your age: ");
        age = keyBoardInput.nextInt();
        trueOrFalse = false;
        trueOrFalse2 = true;
        System.out.print("Please enter your Password: ");
    if (keyBoardInput.next().equals(builtInPassword)) {
        System.out.println(trueOrFalse2);
    } else {
        System.out.println(trueOrFalse);
    } 
}

谢谢你解决了我的问题。 我找到了另一种方法:

if (keyBoardInput.hasnext(builtInPassword)) {
    System.out.println(trueOrFalse2);
} else {
    System.out.println(trueOrfalse)
 }