2015-03-15 2 views
0

У меня есть следующий код, из которого я пытаюсь сохранить имя пользователя и пароль в связанном списке & аутентифицироваться от входа пользователя со сканера, но, похоже, не может заставить его работать вообще. Любой hep будет оценен.Связанный список для проверки подлинности

import java.io.IOException; 
import java.util.LinkedList; 

//Linked lists declared to store, auctions, users, and items 
public class System1{ 

private static LinkedList<User> users = new LinkedList<User>(); 
public static String username; 
public static String password; 

    public static void main(String[] args) throws IOException,  InterruptedException { 

    //User.setuser(); 

    String username = "user"; 
    String password = "pw123"; 

    users.add(new User("user", "pw123")); 
    users.add(new User("user1", "pw123")); 
    users.add(new User("user2", "pw123")); 


    User.validateLogIn(users, username, password); 

    System.out.println("If true you are logged in:" + User.userLogedIn); 

второй класс

public class User { 

public User(String username, String password) { 
} 
static boolean userLogedIn; 

public static void validateLogIn(LinkedList<User> users, String username,  String password) { 

Iterator<User> spin = users.iterator(); 
while (spin.hasNext()){ 
    User user = spin.next(); 

    //System.out.println("Searching"); 
    //System.out.println(username); 
    if(username.equals(user.setUsername()) && password.equals(user.setPassword())) { 
     //System.out.println("BINGO!"); 
     userLogedIn=true; 
    } else { 
     //return false; 
     //System.out.println("User not found" + "\n"); 
    } 
    } 
} 

private String setUsername() { 
String username = "user1"; 
System.out.println("Enter your username: "); 
Scanner scanner = new Scanner(System.in); 
username = scanner.nextLine(); 

return username; 
} 

private String setPassword() { 
String password = "pw123"; 
return password ; 
} 

/*public static void setuser(){ 
System.out.println("Enter your username: "); 
Scanner scanner = new Scanner(System.in); 
System1.username = scanner.nextLine(); 
System.out.println("Your username is " + System1.username); 
System.out.println("Enter your password: "); 
Scanner scanner1 = new Scanner(System.in); 
System1.password = scanner1.nextLine(); 
System.out.println("Your password is " + System1.password); 
}*/ 
+0

'если (username.equals (user.setUsername()) && password.equals (user.setPassword()))' есть думать о том, что эта линия пытается do – beresfordt

+0

Право правильности? , если имя пользователя, находящееся в текущей итерации, равно имени пользователя, заданному пользователем, то же самое с паролем, то x произойдет. Правильно? –

ответ

0

Прежде всего, вам нужно сохранить имя пользователя и пароль, который вы добавляете в свой связанный список (в классе пользователя строитель)

Во-вторых, это непонятно, что вы пытаетесь сделать в своей проверке. вам не нужно передавать все эти аргументы, идентификатор LinkedList более чем достаточно.

что-то вроде этого: System1.java:

import java.io.IOException; 
import java.util.LinkedList; 

//Linked lists declared to store, auctions, users, and items 
public class System1{ 

    private static LinkedList<User> users; 

    public static void main(String[] args) throws IOException, InterruptedException { 

    users = new LinkedList<User>() 
    users.add(new User("user", "pw123")); 
    users.add(new User("user1", "pw123")); 
    users.add(new User("user2", "pw123")); 

    User.validateLogIn(users); 

    System.out.println("If true you are logged in:" + User.userLogedIn); 
} 

User.java:

импорт java.util.Scanner;

общественного класса пользователя {

private String userName; 
private String password; 
public static boolean userLogedIn; 

public User(String username, String password) { 
    this.userName = username; 
    this.password = password; 
} 

public static void validateLogIn(LinkedList<User> users) { 

    userLogedIn = false; 

    String usernameToCheck, passwordToCheck; 
    System.out.println("Enter your username: "); 
    Scanner scanner = new Scanner(System.in); 
    usernameToCheck = scanner.nextLine(); 

    System.out.println("Enter your password: "); 
    passwordToCheck = scanner.nextLine(); 

    Iterator<User> spin = users.iterator(); 
    while (spin.hasNext()){ 
     User user = spin.next(); 

     //System.out.println("Searching"); 
     //System.out.println(username); 
     String userToCheck 
     if(user.userName.equals(userToCheck) && user.password.equals(passwordToCheck)) { 
      //System.out.println("BINGO!"); 
      userLogedIn=true; 
     } else { 
      //return false; 
      //System.out.println("User not found" + "\n"); 
     } 
    } 
} 
+0

Благодарю вас за помощь. Я пытаюсь получить мою проверку, чтобы взять имя пользователя и пароль из связанного списка, где они хранятся, и проверить, равны ли они пользователям, которые помещают \ (имя пользователя и пароль) из консоли. –

+0

Это именно то, что делает этот код, он получает имя пользователя и пароль с консоли (через сканер) и проверяет его на каждую запись в LinkedList –

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