任务描述:

互联网为我们提供了巨大的便利,如微信带给我们的视频、淘宝带给我们便利的购物等,但这些APP都需要有一个账户才可以登录,而账户需要注册可以获取。

本例要求编写一个程序,模拟用户注册。用户输入用户名、密码、确认密码、生日(格式为yyyy--mm—dd为正确)、手机号(手机号长度为11位,并且以13、15、17、18为开头的手机号为正确)、邮箱(包含符号“@”为正确)信息之后,判断信息正确后,验证用户是否重复,重复则给出相应提示,如果不重复则注册成功。案例要求使用HashSet集合实现。

运行结果:

java 模拟同花顺登陆 同花顺模拟账号注册_System

代码如下:

创建用户类:

/**
 * 2022/4/4
 */
public class Yh {
    private String name;
    private String mi;
    private String sr;
    private String sjh;
    private String yx;

    public Yh() {
    }

    public Yh(String name, String mi, String sr, String sjh, String yx) {
        this.name = name;
        this.mi = mi;
        this.sr = sr;
        this.sjh = sjh;
        this.yx = yx;
    }

    public String getName() {
        return name;
    }

    public String getMi() {
        return mi;
    }

    public String getSr() {
        return sr;
    }

    public String getSjh() {
        return sjh;
    }

    public String getYx() {
        return yx;
    }
}

创建测试类:

import java.util.HashSet;
import java.util.Scanner;

/**
 * 2022/4/4
 */
public class yhZc {
    public static void main(String[] args) {

        // 创建HashSet集合对象
        HashSet<Yh> hs = new HashSet<>();

        sr(hs); // 调用用户输入的方法
        ck(hs);   // 注册成功后,调用查看方法,查看一下
    }
    // 创建查看方法
    public static void ck(HashSet<Yh> hs){
        System.out.println("用户名\t\t密码\t\t\t生日\t\t\t手机号\t\t\t邮箱");
        // 遍历集合
        for (Yh yh : hs){
            System.out.println(yh.getName() + "\t\t" + yh.getMi() + "\t" + yh.getSr() + "\t" + yh.getSjh() + "\t\t" + yh.getYx());
        }
    }
    // 用户输入
    public static void sr(HashSet<Yh> hs){
        Scanner in = new Scanner(System.in);
        System.out.println("--------用户注册--------");
        System.out.println("请输入用户名:");
        String name = in.nextLine(); // 用户输入用户名
        String mi;  // 定义在外面,让外部能访问到
        while (true) {
            System.out.println("请输入密码:");
            mi = in.nextLine();  // 用户输入密码
            System.out.println("请确认密码:");
            String qrm = in.nextLine();
            if (mi.equals(qrm)){  // 判断密码是否一致
                break;
            }else{
                System.out.println("两次密码不一致,请重新输入!");
            }
        }
        String sr;
        while (true) {
            System.out.println("请输入生日:");
            sr = in.nextLine();  // 用户输入生日
            if (pdSr(sr)){  // 调用方法,等于true退出循环
                break;
            }else{
                System.out.print("");
            }
        }
        String sjh;
        while (true) {
            System.out.println("请输入手机号:");
            sjh = in.nextLine();  // 用户输入手机号
            if (pdSjh(sjh)){  // 调用方法,等于true退出循环
                break;
            }else{
                System.out.print("");
            }
        }
        String yx;
        while (true) {
            System.out.println("请输入邮箱:");
            yx = in.nextLine();  // 用户输入邮箱
            if (pdYx(yx)){   // 调用方法,等于true退出循环
                break;
            }else {
                System.out.print("");
            }
        }
        Yh yh = new Yh(name,mi,sr,sjh,yx);  // 创建用户对象,将元素填进去
        hs.add(yh);  // 调用集合方法,将用户对象存进去
        System.out.println("注册成功~!");  // 输出提示

    }
    // 判断生日格式是否正确
    public static boolean pdSr(String sr){

        boolean b = true;  // 一个定义boolean变量
       
        if (sr.length() != 10){   // 判断生日长度是否不为10
            System.out.println("生日格式不正确!");
            b = false;  // 不为10,将true改成false
        }else{
            for (int i = 0 ; i < sr.length() ; i++){   // 遍历String
                char c = sr.charAt(i);   // 将每个字符提取出来
                if (i == 4 || i == 7){   // i等于4或等于7时进入
                    if (! (c == '-')){    // 判断c是的字符是否为'-'
                        System.out.println("生日格式不正确!");
                        b = false; // 不为'-'将true改成false
                    }
                }else{
                    if (!(Character.isDigit(c))){  // 判断字符是否是数字
                        System.out.println("生日格式不正确!");
                        b = false;  // 如果不是数字,将true改成false
                    }
                }
            }
        }
       return b; // 返回这个变量
    }
    // 判断手机号是否正确
    public static boolean pdSjh(String sjh){
        boolean b = true;
        if (sjh.length() != 11){  // 判断手机号的长度是否为11
            System.out.println("手机号格式不正确!");
            b = false;
            // 判断开头是否为13,15,17,18
        }else if (!(sjh.startsWith("13")||sjh.startsWith("15")||sjh.startsWith("17")||sjh.startsWith("18"))){
            System.out.println("手机号格式不正确!");
            b = false;
        }
        return b;
    }
    // 判断邮箱格式是否正确
    public static boolean pdYx(String yx){
        boolean b = true;
        if (!yx.contains("@")){  // 判断输入的邮箱是否带有@
            System.out.println("邮箱格式不正确!");
            b = false;
        }
        return b;
    }
}