我想将用户名“carl”与密码“0001”以及其他元素相匹配,但它不起作用。任何人都可以解释我如何匹配“用户名”的每个元素与“密码”的元素?非常感谢你! 这是我的代码:在java中匹配用户名和密码索引的索引
class log{
BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
String [] username ={"carl", "may", "joseph", "oliver", "ashley"};
String []password={"0001", "0002", "0003", "0004", "0005"};
public void login() throws IOException{
System.out.print("\nUSERNAME: ");
uname=br.readLine();
System.out.print("PASSWORD: ");
pword=br.readLine();
for (j = 0; j <= 4; j++) {
if (username[j].equals(password[j])) {
uname=username[j];
pword=password[j];
}
}
while((!uname.equals(password[j]))&&(!pword.equals(username[j]))){
System.out.println("Invalid username/password.");
System.out.print("\nUSERNAME: ");
uname=br.readLine();
System.out.print("PASSWORD: ");
pword=br.readLine();
}
public void main(String[] args)throws IOException {
log b=new log();
b.login();
}
这就是所谓的*并行阵列*,是一个非常糟糕的模式。使用名称和密码作为字段的'class User'而不是使用多个数组。这将使您的逻辑更简单,更易于调试。 – chrylis
* carl *等于* 0001 *如何?在你的if条件中,你必须比较* username [j] .equals(uname)&& passwords [j] .equals(pword)*。 –
将-1置于该问题的人。我认为这个问题很明显。不要忘记,你的编程开始就是这样的。只是合作。 –