1.实验目的
(1)掌握String、StringBuilder类的常用方法
(2)掌握正则表达式的使用。
(3)掌握日期数据的处理方式。
2.实验题目
编写程序实现用户注册功能,注册时检查用户的各种输入是否合法,包括:
(1)用户名只能由字母、数字和下划线组成,长度为6-8位。
(2)密码只能是字母,长度为4~6位,并且两次输入要相同。
(3)邮箱,符合邮箱的规则。
(4)QQ号,符合QQ号的规则。
(5)生日,按照yyyy-MM-dd的格式输入。
(6)手机号,符合手机号的规则。
当用户不满足以上要求时要求重新输入。注册完成后,打印用户注册信息。
3.说明:
(1)利用正则表达式判断注册信息的合法性。
(2)打印注册用户信息时,可以重写用户类的toString()方法。在重写toString()方法时,为了避免“+”运算导致性能上的消耗,使用StringBuider类进行字符串的拼接,拼接结束后将StringBuilder对象转换为String类型返回。
package example7;
import java.util.Arrays;
import java.util.Scanner;
//java语言使用java.util.regex包中的Pattern和Matcher类处理正则表达式的模式匹配问题
import java.util.regex.Matcher;
import java.util.regex.Pattern;
//编写程序实现用户注册功能,注册时检查用户的各项输入是否合法
public class Register {
public static void main(String[] args){
Pattern p=null;
Matcher m=null;
boolean flag=true;
Scanner sc=new Scanner(System.in);
System.out.println("**************欢迎新用户注册**************");
//匹配用户名
System.out.println("请输入用户名:(只能由字母、数字、下划线组成并且开头必须是字母,长度为6-8位)");
String name=sc.nextLine();//获取一个字符串
p=Pattern.compile("[a-zA-z]{1}[a-zA-Z0-9_]{5,7}");
m=p.matcher(name);
flag=m.matches();
if(name.matches