2014-03-26 3 views
0

Я знаю, что это что-то действительно малое и глупое, но я не знаю, почему это не работает. В основном есть только два имени сотрудников, которые можно использовать для входа в систему. Эти два имени хранятся в массиве. Как только пользователь вводит имя и не является одним из двух правильных, программа продолжает запрашивать имя пользователя.Сравнение ввода строки String с массивом String

String [] userNames = {"Jack", "Jill"}; 
logIn(userNames); 

public static void logIn(String [] name) 
{ 
    String userName = ""; 
    Scanner kb = new Scanner(System.in); 
    System.out.print("Enter Username: "); 
    userName = kb.nextLine(); 
    while (userName != name[0] || userName != name[1]) 
    { 
     System.out.print("Enter Username: "); 
     userName = kb.nextLine(); 
    } 
    System.out.println("Correct"); 
} 

ответ

1

Для сравнения строк, equals или compareTo следует использовать:

String [] userNames = {"Jack", "Jill"}; 
logIn(userNames); 

public static void logIn(String [] name) 
{ 
    String userName = ""; 
    Scanner kb = new Scanner(System.in); 
    System.out.print("Enter Username: "); 
    userName = kb.nextLine(); 
    //while (userName != name[0] || userName != name[1]) 
    while (!userName.equals(name[0]) && !userName.equals(name[1])) 
    { 
     System.out.print("Enter Username: "); 
     userName = kb.nextLine(); 
    } 
    System.out.println("Correct"); 
} 
+0

Спасибо так много! :) – user3466181

Смежные вопросы