模拟用户注册的过程
要求输入用户名、密码、密码确认、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]