模拟用户注册,用户输入用户名,密码,确认密码,生日(格式为yyyy-MM-dd)手机号(长度为11位,并且以13,15,17,18开头的手机号码为正确)之后,判断信息正确后,验证用户是否重复,重复则给出相应提示,不重复则注册成功。
此案例使用User与Test两个类
User类
确定五个变量(类)
1.生成空参数构造方法(在空白处右击,选择generate-constructor-直接select none)
2.全部参数的构造方法(在空白处右击,选择generate-constructor-按ctrl选择所有的参数-再确定)
3.生成全部参数的Setter和Getter方法(在空白处右击,选择generate-Setter和Getter-选择算有参数)
4.生成全部参数的equal与hashCode方法(在空白处右击,选择generate-equal与hashCode-一直往下点)
package anli06_3;
import java.util.Date;
import java.util.Objects;
public class User {
private String username;
private String password;
private Date birthday;
private String tel;
private String email;
public User(String username, String password, Date date, String tel, String email) {
}
public User(String username, String password, String tel, String email) {
this.username = username;
this.password = password;
this.birthday = birthday;
this.tel = tel;
this.email = email;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
User user = (User) o;
return Objects.equals(username, user.username) && Objects.equals(password, user.password) && Objects.equals(birthday, user.birthday) && Objects.equals(tel, user.tel) && Objects.equals(email, user.email);
}
@Override
public int hashCode() {
return Objects.hash(username, password, birthday, tel, email);
}
}
Test测试类
package anli06_3;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashSet;
import java.util.Scanner;
public class Test {
public static void main(String[] args) throws ParseException {
HashSet<User> hs=new HashSet<>();
hs.add(new User("张三","123","18612341234","123@qq.com"));
//键盘输入用户的注册数据
Scanner sc =new Scanner(System.in);
System.out.println("请输入用户名");
String username = sc.nextLine();
System.out.println("请输入密码");
String password = sc.nextLine();
System.out.println("请输入确认密码");
String rePassword = sc.nextLine();
System.out.println("请输入生日");
String birthday = sc.nextLine();
System.out.println("请输入手机号");
String tel = sc.nextLine();
System.out.println("请输入邮箱");
String email = sc.nextLine();
//进行数据判断
int status=1;
if(!password.equals(rePassword)){
status=2;
System.out.println("两次输入不一致");
}
if (!(birthday.charAt(4) =='-' && birthday.charAt(7)=='-')){
status=2;
System.out.println("生日格式不正确");
}
if (!(tel.length()==11)&&(tel.startsWith("13")||tel.startsWith("15")||tel.startsWith("17")||tel.startsWith("18"))){
status=2;
System.out.println("手机号格式不正确");
}
if (!email.contains("@")){
status=2;
System.out.println("邮箱格式不正确");
}
if (status==1){
SimpleDateFormat sdf =new SimpleDateFormat("yyy-MM-dd");
Date date =sdf.parse(birthday);
User user=new User(username,password,date,tel,email);
boolean b =hs.add(user);
if (b){
System.out.println("注册成功");
}else{
System.out.println("注册失败");
}
}else{
System.out.println("注册失败");
}
}
}
结果展示