1

Im new to java. sorry if had made any mistakes in asking the question. How to compare 2 strings, This is my code. I appreciate everyone who tried to help me.

public static void displayLogin() {
    System.out.println("\n****** Login Menu ******");
    Scanner loginInput = new Scanner(System.in);
    System.out.print("Enter Username: ");
    String userName = loginInput.next();
    System.out.print("Enter Password: ");
    String password = loginInput.next();
    if (userName == "admin" && password == "admin123") {
        displayMainMenu();
    } else {
        System.out.println("\n#Incorrect Username or Password, Please Try Again#");
        displayLogin();
    }
    loginInput.close();
}
Roger
  • 13
  • 2

1 Answers1

1

Equal equal in java only works on primitive data types, String or object is an reference type. So equals keyword should be used to compare 2 strings. I have modified the code below.

public static void displayLogin() {
    System.out.println("\n****** Login Menu ******");
    Scanner loginInput = new Scanner(System.in);
    System.out.print("Enter Username: ");
    String userName = loginInput.next();
    System.out.print("Enter Password: ");
    String password = loginInput.next();
    if (userName.equals("admin") && password.equals("admin123")) {
        displayMainMenu();
    } else {
        System.out.println("\n#Incorrect Username or Password, Please Try Again#");
        displayLogin();
    }
    loginInput.close();
}
Shuhaib
  • 54
  • 4