Принятие нескольких имени пользователя и пароля - PullRequest
3 голосов
/ 15 июня 2010

Как принять несколько логин и пароль, используя следующий код? if (value1.equals("username") && value2.equals("password"))

Ответы [ 4 ]

5 голосов
/ 15 июня 2010

Возможно, вы просто после простой петли, как это:

String[][] userPass = { { "user1", "pass1" },
                        { "user2", "pass2" },
                        { "user3", "pass3" } };

String value1 = "userToCheck";
String value2 = "passToCheck";

boolean userOk = false;
for (String[] up : userPass)
    if (value1.equals(up[0]) && value2.equals(up[1]))
        userOk = true;

System.out.println("User authenticated: " + userOk);
1 голос
/ 15 июня 2010

Есть много способов решить эту проблему, и другие ответили на это адекватно, но, глядя на более широкую картину, кажется, что вы могли бы вместо этого использовать лучшую структуру данных. Предположительно, все имена пользователей уникальны (то есть нет двух пользователей с одинаковыми именами), и у каждого пользователя может быть только один пароль. В этом случае у вас есть Map<Username,Password> (или просто Map<String,String>).

Из документации:

interface Map<K,V>: объект, сопоставляющий ключи со значениями. Карта не может содержать дубликаты ключей; каждая клавиша может отображать не более одного значения.

В дополнение к базовой функциональности сопоставления существуют реализации, сохраняющие порядок вставки или сортировки по клавишам (см. Вопросы, относящиеся * ).

Вот пример использования:

import java.util.*;
public class MapUsernamePassword {
    public static void main(String[] args) {
        Map<String,String> passwordByUsername = new HashMap<String,String>();

        passwordByUsername.put("jamesbond", "i~am:aWesoem!");
        passwordByUsername.put("n00b", "pizza");

        System.out.println(passwordByUsername);
        // {jamesbond=i~am:aWesoem!, n00b=pizza}

        System.out.println(passwordByUsername.containsKey("jamesbond"));
        // true

        System.out.println(passwordByUsername.get("jamesbond"));
        // i~am:aWesoem!        

        System.out.println(passwordByUsername.containsKey("austinpower"));
        // false

        System.out.println(passwordByUsername.get("n00b").equals("pizza"));
        // true
    }
}

API ссылки

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

1 голос
/ 15 июня 2010
if ((value1.equals("username1") && value2.equals("password1")) ||
    (value1.equals("username2") && value2.equals("password2")))

Я советую вам сделать хорошую проверку имени пользователя / пароля, потому что жесткое кодирование не является безопасным (и гибким)

0 голосов
/ 15 июня 2010

if (value1.equals ("username1") && value2.equals ("password1") || value1.equals ("username2") && value2.equals ("password2") || ....)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...