模拟用户注册的过程

要求输入用户名、密码、密码确认、email

每项分别输入,判断输入格式是否正确(用户名5-8,密码6-8,邮箱)

若输入格式错误,重新输入,直到格式正确,放入HashMap

注册完毕后,用HashMap中的数据构造一个User对象,打印该用户信息

注册代码如下:

package day10;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
/**
 * 模拟用户注册过程
 */
public class UserRegist {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        // HashMap用于存放键值对信息。
        Map<String,String> map = new HashMap<String,String>();
        for(;;){
            System.out.println("请输入用户姓名:");
            String name = scan.next();
            if(name.matches("[a-zA-Z0-9_]{5,8}")){// 正则表达式的使用
                map.put("name",name);
                break;
            }else{
                System.out.println("用户名格式错误!");
            }
        }
        for(;;){// 如果重复密码输入错误,也即两次录入不等,密码也要重新输入。
            String password = "";
            for(;;){
                System.out.println("请输入用户密码:");
                password = scan.next();
                if(password.matches("[a-zA-Z0-9_]{6,8}")){
                    // 密码和重复密码都确认后再存储
                    break;
                }else{
                    System.out.println("密码格式错误!");
                }
            }
            String repassword = "";
            for(;;){// 重复密码格式不对,重新录入重复密码
                System.out.println("请重复用户密码:");
                repassword = scan.next();
                if(repassword.matches("[a-zA-Z0-9_]{6,8}")){
                    break;
                }else{
                    System.out.println("重复密码格式错误!");
                }
            }
            if(password.equals(repassword)){
                // 密码和重复密码都确认后再存储
                map.put("password",password);
                break;
            }else{
                System.out.println("两次录入不一致");
            }
        }
              
        for(;;){
            System.out.println("请输入用户邮箱:");
            String email = scan.next();
            if(email.matches("[a-zA-Z0-9_]+@[a-zA-Z0-9_]+(\\.com|\\.cn)")){
                map.put("email", email);
                break;
            }else{
                System.out.println("邮箱格式错误!");
            }
        }
//      System.out.println(map);
        // 通过get(key)取出value,构建user对象。
        User user = new User(map.get("name"),map.get("password"),map.get("email"));
        System.out.println(user);
    }
}

结果显示:

请输入用户姓名:

zhangfei

请输入用户密码:

123456

请重复用户密码:

123456

请输入用户邮箱:

123456@qq.com

User [name=zhangfei, password=123456, email=123456@qq.com]