ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

模拟新浪微博用户注册

2019-07-12 22:55:32  阅读:332  来源: 互联网

标签:userName java String 用户注册 微博 User 新浪 password public


练习HashSet类的使用,字符串操作及一些常用类的使用。练习面向对象的编程思维。

 

项目工程文件:

包含用户类User,校验信息类ChackInfo,新用户注册类UserRegister .

用户类 User.java

 1 package cn.ftf.sina;
 2 
 3 import java.util.Date;
 4 
 5 /**
 6  * 模拟注册新浪新用户---用户类
 7  * @author 房廷飞
 8  *
 9  */
10 public class User {
11     private String userName;
12     private String password;
13     private Date brithday;
14     private String tellNumber;
15     private String email;
16     public User(String userName, String password, Date birthday, String tellNumber, String email) {
17         super();
18         this.userName = userName;
19         this.password = password;
20         this.brithday = birthday;
21         this.tellNumber = tellNumber;
22         this.email = email;
23     }
24     
25     //重写toString方法
26     @Override
27     public String toString() {
28         return "User [userName=" + userName + ", password=" + password + ", brithday=" + brithday + ", tellNumber="
29                 + tellNumber + ", email=" + email + "]";
30     }
31     
32     //重写equal方法,以用户名为是否重复的依据
33     @Override
34     public int hashCode() {
35         final int prime = 31;
36         int result = 1;
37         result = prime * result + ((userName == null) ? 0 : userName.hashCode());
38         return result;
39     }
40     @Override
41     public boolean equals(Object obj) {
42         if (this == obj)
43             return true;
44         if (obj == null)
45             return false;
46         if (getClass() != obj.getClass())
47             return false;
48         User other = (User) obj;
49         if (userName == null) {
50             if (other.userName != null)
51                 return false;
52         } else if (!userName.equals(other.userName))
53             return false;
54         return true;
55     }
56     
57 
58 }

校验信息类 ChackInfo.java

  1 package cn.ftf.sina;
  2 /**
  3  * 校验信息类
  4  * @author 房廷飞
  5  *
  6  */
  7 
  8 import java.text.DateFormat;
  9 import java.text.ParseException;
 10 import java.text.SimpleDateFormat;
 11 import java.util.Date;
 12 import java.util.HashSet;
 13 
 14 public class ChackInfo {
 15     public static HashSet<User> has=new HashSet<User>();  //初始化chackInfo类,新建一个HashSet集合,目的是将用户集合掺入该类中
 16     public ChackInfo(HashSet<User> has) {  //构造方法,将用户类USER_DATA传入该类中
 17         this.has=has;
 18     }
 19     //检查用户输入的信息是否合法
 20     public String chackAction(String userName,String password,String rePassword,String birthday ,String phone,String email) {
 21         StringBuffer str=new StringBuffer();  //新建一个StringBuffer类,用存储要提供给用户的信息  最好是StringBuilder类。StringBuilder类比StringBuffer类节省资源,但线程不安全。
 22         int state=1;  //int 状态信息,1正常,2异常
 23         if(!password.equals(rePassword)) {    //判断两个字符串是否一样,equals方法
 24             str.append("两次密码输入不一致!");  //向StringBuffer类中添加字符串 .append("")
 25             state=2;
 26         }
 27         //判断日期格式是否正确
 28         if(birthday.length()!=10) {
 29             str.append("输入日期格式有误1!");
 30             state=2;
 31         }else {
 32             /*
 33             for (int i=0;i<birthday.length();i++) {
 34                 if(i==4||i==7) {
 35                     if(birthday.charAt(i)!='-') {
 36                         str.append("输入日期格式有误2!");
 37                         state=2;
 38                     }
 39                 }
 40             }
 41             */
 42             for (int i=0;i<birthday.length();i++) {
 43                 Character thischar=new Character(birthday.charAt(i));  //包装类,字符串类Character,这里使用包装类是为了下面判断是否是0-9的数字
 44                 if(i==4||i==7) {
 45                     if(!(thischar=='-')) {
 46                         str.append("输入日期格式有误2!");
 47                         state=2;
 48                     }
 49                 }else {
 50                     if(!(Character.isDigit(thischar))) {    //判断是否是0-9的数字,Character.isDiggit(char)方法
 51                         str.append("输入日期格式有误3!");
 52                         state=2;
 53                     }
 54                 }
 55             }
 56         }
 57         
 58         //手机号码格式判断
 59         if(phone.length()!=11) {
 60             str.append("手机号码格式不正确1");
 61             state=2;
 62         }else{
 63             if(phone.startsWith("13")||phone.startsWith("15")||phone.startsWith("17")||phone.startsWith("19")) {  //phone字符串是否是这些开头
 64                 str.append("手机号码格式不正确2!");
 65                 state=2;
 66             }
 67         }
 68         
 69         //邮箱判断
 70         if(!email.contains("@")) {  //Email字符串是否包含“@”
 71             str.append("邮箱格式不正确!");
 72             state=2;
 73         }
 74         //日期类的用法
 75         if(state==1) {
 76             DateFormat format=new SimpleDateFormat("yyy-MM-dd");  //日期DateFormat类,这里需要专门学习了解下,实例化一个DateFormat类,指明期望的格式
 77             Date dataBirthday=null;    //空的Date类
 78             try {
 79                 dataBirthday=format.parse(birthday);  //将字符串日期转换为日期对象
 80             } catch (ParseException e) {
 81                 // TODO Auto-generated catch block
 82                 e.printStackTrace();
 83             }
 84             
 85             
 86         User newUser=new User(userName,rePassword,dataBirthday,phone,email);  //形成一个新用户
 87         if(!has.add(newUser)) {  //将用户添加到 用户集合中
 88             str.append("用户重复");
 89             state=2;
 90         }
 91         if(state==1) {
 92             str.append("注册成功!!!");
 93             }
 94         }
 95         
 96         return str.toString();  //String方法返回校验结果字符串
 97         
 98     }
 99     
100 }

新用户注册类 UserRegister.java

 1 package cn.ftf.sina;
 2 /**
 3  * 用户注册类
 4  * @author 房廷飞
 5  *
 6  */
 7 
 8 import java.util.Date;
 9 import java.util.HashSet;
10 import java.util.Scanner;
11 
12 public class UserRegister {
13     public static HashSet<User>USER_DATA=new HashSet<User>();  //static 对类进行初始化,新建一个HashSet集合USER_DATA
14     public static void main(String[] args) {
15         addUserFirst();    //先定义一个方法,写入USER_DATA几个元素初始化
16         Scanner in=new Scanner(System.in);
17         System.out.println("请输入用户名:");
18         String userName=in.nextLine();
19         System.out.println("请输入密码:");
20         String password=in.nextLine();
21         System.out.println("请重复密码:");
22         String rePassword=in.nextLine();
23         System.out.println("请输入出生年月日:");
24         String birthday=in.nextLine();
25         System.out.println("请输入手机号码:");
26         String phone=in.nextLine();
27         System.out.println("请输入Email:");
28         String email=in.nextLine();
29         ChackInfo ch=new ChackInfo(USER_DATA);    //新建一个检查对象ch,根据chackInfo类的构造方法传入USER_DATA集合
30         String result=ch.chackAction(userName, password, rePassword, birthday, phone, email);  //调用chackInfo的方法,传入参数
31         System.out.println("注册结果:"+result);
32     }
33     
34     
35     private static void addUserFirst() {    //写入集合几个元素初始化
36         User u1=new User("张三","ss,234",new Date(),"18888888888","zhang@qq.com");
37         User u2=new User("张wu","qs,234",new Date(),"18222884568","zhuangng@qq.com");
38         USER_DATA.add(u2);
39         USER_DATA.add(u1);
40 
41     }
42 
43 }

 

标签:userName,java,String,用户注册,微博,User,新浪,password,public
来源: https://www.cnblogs.com/fangtingfei/p/11178809.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有