如何使用以下代码接受多个用户名和密码? if (value1.equals("username") && value2.equals("password"))
答案 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
}
}
答案 3 :(得分:0)
if(value1.equals(“username1”)&amp;&amp; value2.equals(“password1”)|| value1.equals(“username2”)&amp;&amp; value2.equals(“password2”)||。 ...)