java 模拟用户注册

模拟用户注册,用户输入用户名,密码,确认密码,生日(格式为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("注册失败");

     }
    }

}

结果展示

 

  • 12
    点赞
  • 121
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浩气长存在心中

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值