1.学会分析"模拟新浪微博用户注册"程序的实现思路
2.根据思路独立完成"模拟新浪微博用户注册"程序源代码的编写、编译及运行
3.掌握Hashset存储数据的流程
要求:
编写一个模拟新浪微博用户注册的程序,要求使用hashset集合实现。假设当用户输入用户名、密码、确认密码、生日(输入格式为yyyy-MM-dd)、手机号(手机号长度为11位),并且以13,15,17或18为开头的手机号为正确、邮箱(包含符号@为正确信息)之后,判断信息输入是否正确,正确验证用户是否重复注册,如果不是重复注册则注册成功,例如用户信息列表中已经存在用户张正。当张正再次注册时,则输出注册结果用户重复。
二、实验原理(图):
(1)为了便于存储用户信息,需要创建一个用户类,在类中重写其中的HashCode()方法,令其返回用户名的哈希值,再重写equals()方法,来比较对象的用户名属性是否相等。
(2)有了用户类之后,再需要1一个用户注册类来模拟注册信息,该类中可以用HashSet集合来创建一个数据列表,然后向列表中添加两条初始注册信息。
(3)从控制台获取用户填写信息,可以通过Scanner类的nextLine()方法来实现,获取后,需要将获取的信息校验。
(4)校验信息可以创建一个检验类,在类中实现用户输入的信息的方法。检验结束后,如果检验结果错误就直接返回错误信息,这里可以声明一个检验结果变量和一个检验状态变量。检验结果变量用于存储提示信息,检验状态变量用于存储结果的判断标识。
(5)当用户输入的信息不满足格式时,需要修改变量1状态并存储错误信息。
(6)判断校验状态,如果所有信息都通过校验,则将用户信息创建成为用户对象,通过将对象添加到用户列表返回结果来判断用户名是否重复,并记录下返回结果信息。
package 模拟新浪微博注册;
public class User {
//用户名
private String userName;
//用户密码
private String pwd;
//生日
private String birthday;
//手机号
private String telNumber;
//邮箱
private String email;
//扩展属性:确认密码
private String rePwd;
//有参构造函数
public User(String userName,String pwd,String date,String telNumber,String email)
{
setUserName(userName);
setPwd(pwd);
setBirthday(date);
setTelNumber(telNumber);
setEmail(email);
}
//无参构造函数
public User() {
}
//属性访问器
//重写toString()方法进行用户信息输出
public String toString(){
return "用户信息:\r姓名:"+getUserName()+"\r生日:"
+getBirthday()+"\r邮箱:"+getEmail()+"\r手机号:"+getTelNumber()+"\r用户密码:"+getPwd();
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
public String getTelNumber() {
return telNumber;
}
public void setTelNumber(String telNumber) {
this.telNumber = telNumber;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getRePwd() {
return rePwd;
}
public void setRePwd(String rePwd) {
this.rePwd = rePwd;
}
//重写hashCode方法
public int hashCode(){
return userName.hashCode(