首页 > 解决方案 > 一起显示两个单个数组

问题描述

我在这里挣扎。我的程序是关于使用数组进行简单的登录和登录。现在,每当我想登录时,只要我想检查我创建的所有帐户是否成功收集在一个数组中,我都希望显示所有用户名和密码。现在,每当我想显示所有帐户时,都不会显示用户名,而只会显示密码。这是我的代码:

    package login;
    import java.util.*;
    import static java.lang.System.out;
    
    public class login {
    
         public static void main(String [] args) {
            
             String user [] = new String [100];
             String pass [] = new String [100];
             int sign=0;
             
             boolean again=true, logAgain=true;
             Scanner scan = new Scanner (System.in);
             while(again) {
             out.println("[1]Sign-up\n[2]Log-in\n[3]Display Account?\n[4]Exit");
             out.print("Select: ");
             int a=scan.nextInt();
                if (a==1) {
                    again=false;
                    sign++;
                    out.print("Username: ");
                    user[sign]=scan.nextLine();
                    scan.nextLine();
                    out.print("Password: ");
                    pass[sign]=scan.nextLine();
                    out.println("Log in now? [Y/N] : ");
                    String b=scan.next();
                        if(b.equals("Y")||b.equals("y")) {
                            again=true;
                        } else {
                            again=false;
                            System.exit(0);
                        }
                    
                } else if(a==2){
                    again=false;
                    logAgain=true;
                        while(logAgain) {
                        out.print("Username: ");
                        String userU=scan.nextLine();
                        scan.nextLine();
                        out.print("Password: ");
                        String userP=scan.nextLine();
                        
                            if (userU.equals(user[sign])&&userP.equals(pass[sign])) {
                                out.println("You're logged in!");
                                logAgain=false;
                                out.println("Back to menu? [Y/N] : ");
                                String c=scan.next();
                                    
                                    if (c.equals("Y")||c.equals("y")) {
                                        again=true;
                                    } else {
                                        System.exit(0);
                                    }
                            }else if (!userU.equals(user[sign])&&userP.equals(pass[sign])) {
                                out.println("Invalid username or Password!");
                                logAgain=true;
                            }else {
                                again=true;
                                logAgain=false;
                                out.println("Please register first!");
                            }
                        }
                } else if (a==3) {
                    again=false;
                        
                        if (sign<1) {
                            out.println("\nNo account to display!\nPlease sign-up first.\n");
                            again=true;
                        } else {
                            System.out.println("");
                            System.out.printf("%-15s%10s\n","Username","Passwords");
                            for (int i = 1; i <=sign; i++) 
                            System.out.printf("%-15s%10s\n",user[i],pass[i]);
                            System.out.println("");
                            
                            out.println("Back to menu? [Y/N] : ");
                            String c=scan.next();
                            
                            if (c.equals("Y")||c.equals("y")) {
                                again=true;
                            } else {
                                System.exit(0);
                            }
                        }
                        
                } else if(a==4) {
                    again=false;
                    System.exit(0);
                } else {
                    
                }
         }
             
        }
}

我的输出是这样的:

[1]Sign-up
[2]Log-in
[3]Display Account?
[4]Exit
Select: 3

Username        Passwords
                 Password
                     pass
                evohohivr

Back to menu? [Y/N] : 

先感谢您。

标签: java

解决方案


您丢弃了错误的Scanner输入。它应该是这样的:

if (a==1) {
    again=false;
    sign++;
    out.print("Username: ");
    scan.nextLine();                 // This was the wrong order
    user[sign]=scan.nextLine();
    out.print("Password: ");
    pass[sign]=scan.nextLine();
    out.println("Log in now? [Y/N] : ");
    String b=scan.next();
    if(b.equals("Y")||b.equals("y")) {
        again=true;
    } else {
        again=false;
        System.exit(0);
    }            
}

推荐阅读