模拟用户注册的过程
要求输入用户名、密码、密码确认、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]
转载于:https://blog.51cto.com/7618153/1259328