接受多个用户名和密码

时间:2010-06-15 07:11:33

标签: java

如何使用以下代码接受多个用户名和密码? if (value1.equals("username") && value2.equals("password"))

4 个答案:

答案 0 :(得分:5)

也许你只是在这样一个简单的循环之后:

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 :(得分:1)

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

我建议你做一些像样的用户名/密码检查,因为硬编码不安全(而且灵活)

答案 2 :(得分:1)

有很多方法可以解决这个问题,而其他方法已经做了充分的回答,但从更大的角度来看,您可能希望使用更好的数据结构。据推测,所有用户名都是唯一的(即没有两个用户具有相同的名称),并且每个用户只能拥有一个密码。在这种情况下,你拥有的是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参考

相关问题

答案 3 :(得分:0)

if(value1.equals(“username1”)&amp;&amp; value2.equals(“password1”)|| value1.equals(“username2”)&amp;&amp; value2.equals(“password2”)||。 ...)