java——模拟新浪微博用户注册
1.创建用户类,重写HashCode()和equals()方法:
import java.util.*;
public class User{
private String name;
private String pwd;
private Date bd;
private String telNum;
private String email;
public User(){
}
public User(String name, String pwd, Date bd,
String telNum, String email){
this.name = name;
this.pwd = pwd;
this.bd = bd;
this.telNum = telNum;
this.email = email;
}
@Override
public int hashCode(){
return name.hashCode();
}
@Override
public boolean equals(Object obj){
if(this == obj){
return true;
}
if(obj == null){
return false;
}
// getClass() 返回此 Object 的运行时的类。
if(getClass() != obj.getClass()){
return false;
}
//不这样会报错,obj是Object类,而Object类是所有类的父类,包括了User类,所以上一步即使相等,还是得强制转换成Object的子类User才行。 User other = (User) obj;
if(name == null){
if(other.name != null){
return false;
}
}else if(!name.equals(other.name)){
return false;
}
return true;
} }
2.创建用户注册类:
import java.util.*;
public class UserRegister{
public static HashSet<User> USER_DATA = new HashSet<User>();
public static void main(String[] args){
//initData();
Scanner scan = new Scanner(System.in);
System.out.println("请输入用户名:");
String name = scan.nextLine();
System.out.println("请输入密码:");
String pwd = scan.nextLine();
System.out.println("请再次输入密码:");
String repwd = scan.nextLine();
System.out.println("请输入出生日期:");
String bd = scan.nextLine();
System.out.println("请输入手机号:");
String telNum = scan.nextLine();
System.out.println("请输入电子邮箱:");
String email = scan.nextLine();
CheckInfo checkInfo = new CheckInfo(USER_DATA);
String result = checkInfo.checkAction(name, pwd, repwd, bd, telNum, email);
System.out.println("注册结果:" + result);
}
// private static void initData(){
// User user1 = new User("张三", "123", "123", new Date(),
// "18812341234", "1123456@163.com");
// User user2 = new User("张六", "126", "126", new Date(),
// "18812341236", "66666666@163.com");
// USER_DATA.add(user1);
// USER_DATA.add(user2);
// }
}
3.创建校验信息类:
import java.util.*;
import java.util.*;
import java.text.*;
public class CheckInfo{
public static HashSet<User> USER_DATA = new HashSet<User>();
public CheckInfo(HashSet<User> USER_DATA){
this.USER_DATA = USER_DATA;
}
public String checkAction(String name, String pwd,
String repwd, String bd, String telNum, String email){
StringBuilder result = new StringBuilder();
int state = 1;
//密码判断
if(!pwd.equals(repwd)){
result.append("两次输入的密码不一样~\r\n");
state = 2;
}
//生日判断
if(bd.length() != 10){
result.append("生日格式不正确~\r\n");
state = 2;
}else{
for(int i=0; i<bd.length(); i++){
Character thisChar = bd.charAt(i);
if(i == 4 || i == 7){
if(thisChar != '-'){
result.append("生日格式不正确~\r\n");
state = 2;
}
}else{
if(!Character.isDigit(thisChar)){
result.append("生日格式不正确~\r\n");
state = 2;
}
}
}
}
//电话号码判断
if(telNum.length() != 11){
result.append("输入手机号不正确~\r\n");
state = 2;
}else{
for(int i=0; i<telNum.length(); i++){
Character thisChar = telNum.charAt(i);
if(!Character.isDigit(thisChar)){
result.append("输入手机号不正确~\r\n");
state = 2;
}else if(!(telNum.startsWith("13") ||
telNum.startsWith("15") ||
telNum.startsWith("18") ||
telNum.startsWith("17"))){
result.append("输入手机号不正确~\r\n");
state = 2;
}
}
}
//邮箱判断
if(!email.contains("@")){
result.append("邮箱不正确~\r\n");
state = 2;
}
if(state == 1){
//格式化日期返回对象
DateFormat format = new SimpleDateFormat ("yyyy-mm-dd");
Date datebd = null;
try {
datebd = format.parse(bd);
} catch (ParseException e){
e.printStackTrace();
}
User newUser = new User(name, repwd, datebd, telNum, email);
if(!USER_DATA.add(newUser)){
result.append("用户重复!");
state = 2;
}
if(state == 1){
result.append("注册成功!");
}
}
return result.toString();
}
}
java——模拟新浪微博用户注册的更多相关文章
- Java模拟新浪微博登陆抓取数据
前言: 兄弟们来了来了,最近有人在问如何模拟新浪微博登陆抓取数据,我听后默默地抽了一口老烟,暗暗的对自己说,老汉是时候该你出场了,所以今天有时间就整理整理,浅谈一二. 首先: 要想登陆新浪微博需要 ...
- 杨老师课堂_Java核心技术下之控制台模拟微博用户注册案例
案例设计背景介绍: 编写一个新浪微博用户注册的程序,要求使用HashSet集合实现. 假设当用户输入用户名.密码.确认密码.生日(输入格式yyyy-mm-dd为正确).手机号码(手机长度为11位,并 ...
- [Javascript] 爬虫 模拟新浪微博登陆
概述: 由于业务需要,要编写爬虫代码去爬去新浪微博用户的信息. 虽然在网上能找到不少信息,但由于新浪微博改版,其登陆机制进行了修改,故很多老的文章就不适合用了. 经过一番摸索,成功模拟新浪微博的登陆 ...
- java模拟post请求发送json
java模拟post请求发送json,用两种方式实现,第一种是HttpURLConnection发送post请求,第二种是使用httpclient模拟post请求, 方法一: package main ...
- java 模拟qq源码
java 模拟qq源码: http://files.cnblogs.com/files/hujunzheng/QQ--hjzgg.zip
- java模拟开锁
java模拟开锁 service qq:928900200 Introduction to Computer Science II: CSCI142Fall 2014Lab #1Instructor: ...
- Jsoup实现java模拟登陆
Jsoup实现java模拟登陆 2013-10-29 14:52:05| 分类: web开发|举报|字号 订阅 下载LOFTER我的照片书 | 1:如何获取cookies. 1.1 ...
- 模拟新浪微博textarea,刷新页面输入信息保留
今天我们的产品经理提出一个新需求,模拟新浪微博textarea框,输入内容刷新页面保留信息. 我是用的方法是Html5 LocalStorage存储的,开始计划用cookie.或mysql存储,尝试了 ...
- [Java] 模拟HTTP的Get和Post请求
在之前,写了篇Java模拟HTTP的Get和Post请求的文章,这篇文章起源与和一个朋友砍飞信诈骗网站的问题,于是动用了Apache的comments-net包,也实现了get和post的http请求 ...
随机推荐
- Python:生成器表达式
转于:http://www.cnblogs.com/liu-shuai/p/6098218.html 博主:刘-帅 简介: 生成器表达式并不真正的创建数字列表,而是返回一个生成器对象,此对象在每次计算 ...
- 【转】 Pro Android学习笔记(六六):安全和权限(3):Provider权限
目录(?)[-] 访问其他应用的content provider Provider的读写权限 Provider的URI权限 Provider的granting 全局granting 部分URI的gra ...
- 杂项-权限管理:RBAC
ylbtech-杂项-权限管理:RBAC 基于角色的权限访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注.在RBAC中, ...
- linux 时间处理 + 简单写log
1s ==1000ms == 1,000,000us == 1,000,000,000 nanosecond uname -a Linux scott-Z170X 4.15.0-34-generic ...
- VisualGDB系列1:VisualGDB总体概述
根据VisualGDB官网(https://visualgdb.com)的帮助文档大致翻译而成.主要是作为个人学习记录.有错误的地方,Robin欢迎大家指正. 本文总体介绍VisualGDB能给你带来 ...
- maven spring3.2.5
出现的情形: 开发环境: spring3.2.5 + springmvc +spirngDATA +maven 一. 偶然的spring Junit4测试 加载applicationContext.x ...
- python+selenium简单实现拖动元素实例
from selenium import webdriver#引入ActionChains类from selenium.webdriver.common.action_chains impo ...
- Hadoop添加节点datanode(生产环境)
Hadoop添加节点datanode 博客分类: hadoop HadoopSSHJDKXML工作 1.部署hadoop 和普通的datanode一样.安装jdk,ssh 2.修改host ...
- R: factor & list 生成和操作因子、列表
################################################### 问题:生成.操作列表 & 因子 18.4.27 怎么生成列表 list.因子 fac ...
- Struts2学习第五课 通过和ServletAPI耦合的方式获取WEB资源
与Servlet耦合的访问方式 直接访问Servlet API将使Action与环境Servlet环境耦合在一起,测试时需要有Servlet容器,不便对Action的单元测试. 直接获取HttpSer ...