Java模擬新浪微博使用者註冊
阿新 • • 發佈:2021-01-11
模擬新浪微博使用者註冊
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; } } }