1. 程式人生 > 實用技巧 >Java模擬新浪微博使用者註冊

Java模擬新浪微博使用者註冊

模擬新浪微博使用者註冊

User.java

package gather.sina;

public class User {
    private String username;
    private String password;
    private String birthday;
    private String phoneNumber;
    private String email;
    User(){
    }

    @Override
    public int hashCode() {
        return username.hashCode();
    }

    @Override
    public boolean equals(Object obj) {
        if(this==obj)               //判斷是否為同一個物件
        {
            return true;
        }
        if(!(obj instanceof User))//判斷是否為User型別,如果不是Student型別返回false
        {
            return false;
        }
        User user=(User) obj;   //將obj轉化為user型別
        boolean result=this.username.equals(user.username);
        return result;
    }

    public User(String username, String password, String birthday, String phoneNumber, String email) {
        this.username = username;
        this.password = password;
        this.birthday = birthday;
        this.phoneNumber = phoneNumber;
        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 String getBirthday() {
        return birthday;
    }

    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }

    public String getPhoneNumber() {
        return phoneNumber;
    }

    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

}

ManageSystem.java

package gather.sina;

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

public class ManageSystem {
    public static HashSet<User> users=new HashSet<User>();

    public static void main(String[] args) {
        User user1=new User("Tom","123","2000-01-01","18912345678","@");
        users.add(user1);
        String[] inputData=inputInfo();
        if(checkInfo(inputData)){
            saveInfo(inputData);
        }
    }
    //提示使用者輸入資訊,並用把資訊儲存在字串陣列中
    static public String[] inputInfo() {
        String[] userData=new String[6];
        Scanner scan=new Scanner(System.in);
        System.out.println("請輸入使用者名稱");
        userData[0]=scan.nextLine();

        System.out.println("請輸入密碼");
        userData[1]=scan.nextLine();

        System.out.println("請重複輸入你的密碼");
        userData[2]=scan.nextLine();

        System.out.println("請輸入出生日期");
        userData[3]=scan.nextLine();

        System.out.println("請輸入手機號碼");
        userData[4]=scan.nextLine();

        System.out.println("請輸入電子郵箱");
        userData[5]=scan.nextLine();

        return userData;
    }

    //用CheckSystem檢驗使用者輸入的資訊是否正確
    static public boolean checkInfo(String[] userData){
        CheckSystem checkData=new CheckSystem();
        return checkData.checkInfo(userData);

    }

    //檢驗使用者資訊是否重複,如果沒有重複,把使用者的資訊儲存在HashSet集合裡
    static public void saveInfo(String[] userdata) {
        User user=new User(userdata[0],userdata[1],userdata[3],userdata[4],userdata[5]);
        if(!users.add(user))
        {
            System.out.println("使用者重複");
            return;
        }
        System.out.println("註冊成功!");
    }
}

CheckSystem.java

package gather.sina;

public class CheckSystem {

    public boolean checkInfo(String[] userdata)
    {
        boolean result=true;
       if(!checkBirthday(userdata[3]))
           result=false;
       if(!checkPassword(userdata[1], userdata[2]))
           result=false;
       if(!checkPhoneNumber(userdata[4]))
           result=false;
        if(!checkMail(userdata[5]))
            result=false;
        return result;
    }

    //確認生日是否為yyyy-mm-dd
    public boolean checkBirthday(String birthday)
    {
        char[] number={'0','1','2','3','4','5','6','7','8','9'};
        char[] check=birthday.toCharArray();
        int stat=0;
        if(birthday.length()!=10)
        {
            System.out.println("長度不對");
            return false;
        }
        else {
            for(int i=0;i<10;i++)
            {
                if(i==4||i==7)
                {
                    if(check[i]!='-')
                        System.out.println("輸入格式不正確,請按yyyy-mm-dd輸入");
                }
                else
                    {
                    for(int j=0;j<10;j++)
                    {
                        if(number[j]==check[i])
                        {
                            stat=1;
                        }
                    }
                    if(stat==0)
                    {
                        System.out.println("數字"+check[i]+"不對");
                    }

                }
            }
        }
        return true;
    }

    //確認兩次輸入的密碼是否一致
    public boolean checkPassword(String password,String repPassword)
    {
        if(password.equals(repPassword))
            return true;
        else {
            System.out.println("兩次輸入的密碼不一致");
            return false;
        }
    }

    //確認電話號碼長度是否為11位,且是否以13、15、17、18開頭
    public boolean checkPhoneNumber(String PhoneNumber)
    {
        char[] check=PhoneNumber.toCharArray();
        if((check[0]=='1')&&(PhoneNumber.length()==11))
        {
            if((check[1]=='3')||(check[1]=='5')||(check[1]=='7')||(check[1]=='8'))
            {
                return true;
            }
        }
        System.out.println("請輸入正確的電話號碼");
        return false;
    }

    //確認郵箱是否為@
    public boolean checkMail(String email)
    {
        CharSequence ch="@";
        if(email.contains(ch))
        {
            return true;
        }else {
            System.out.println("郵箱無效");
            return false;
        }

    }
}