一、 java模拟微博注册程序

要求使用HashSet集合实现。假设当用户输入用户名、密码、确认密码、生日(格式yyyy-mm-dd)、手机号码(长度11位,并且以13、15、17、18、19为开头)、邮箱(包含**@**符号)信息后、判断信息输入是否正确,若正确,则验证用户是否重复注册,如果不重复则显示注册成功,否则显示用户重复

整体思路:分为三个类
1、 用户类:用户基本信息 有参无参构造方法 hashCode()和equals()方法的重写

public int hashCode(){
		return name.hashCode();
	}
public boolean equals(Object obj){
	if(this==obj){
		return true;
	}
	if(!(obj instanceof User)){
		return false;
	}
	User u=(User)obj;
	return name.equals(u.name);
}

2、用户信息验证类:定义用户基本信息数据USER_DATA

public static HashSet<User> USER_DATA;

构造方法 把用户基本信息数据导入

public Check(HashSet<User> data){
        	super();
        	USER_DATA=data;
    }

写了一个checkAction()方法验证所有信息
密码 生日 手机号 邮箱

public void checkAction(String name,String pwd,String rePwd,String birthday,String telNum,String email)

并记录下成功的状态state
调用User的有参构造方法,如果成功,就直接添加进用户

User user=new User(name,pwd,birthday,telNum,email);
		if(!USER_DATA.add(user)){
			System.out.println("用户重复");
			state=2;
		}
		if(state==1){
			System.out.println("注册成功");
		}

3、用户操作类:
建立集合 存入用户数据

public static HashSet<User> USER_DATA=new HashSet<User>();

相应的输入信息提示:用户名,密码等
初始化信息 initData()

private static void initData() {
		User user1=new User("张三","zq,123","1998-04-23","18608681193","zhangsan@itcast.cn");
		User user2=new User("周琦","zz,123","2000-09-12","18618121193","zhouqi@itcast.cn");
		User user3=new User("张正","zz,123","1993-07-29","18810319240","zhangzheng@itcast.cn");
		USER_DATA.add(user1);
		USER_DATA.add(user2);
		USER_DATA.add(user3);
		
	}

二、KTV点歌系统

java实现用户名限制不能是敏感词 java注册中防止用户名重复_User

import java.util.*;
public class Test {

	public static void main(String[] args) {
		
		System.out.println("------------------欢迎来到点歌系统----------------");
		System.out.println("0.添加歌曲至列表");
		System.out.println("1.将歌曲置顶");
		System.out.println("2.将歌曲前移一位");
		System.out.println("3.退出");

		LinkedList<String> list = new LinkedList<String>(); // 创建歌曲列表
		addMusicList(list); // 添加一部分歌曲至歌曲列表
		System.out.println("当前歌曲列表:" + list);
		while (true) {
			System.out.println("请输入要执行的操作序号");
			Scanner sc = new Scanner(System.in);
			String str=sc.next();
			// 执行对应的功能
			switch (str) {
			case "0": // 添加歌曲至列表
				addSong(list);
				break;
			case "1": // 将歌曲置顶
				setTop(list);
				break;
			case "2": // 将歌曲前移一位
				setBefore(list);
				break;
			case "3": // 退出
				exit();
				break;
			default:
				System.out.println("功能选择有误,请输入正确的功能序号!!");
				break;
			}
			printList(list);
		}
	}
	//初始化添加
	private static void addMusicList(LinkedList<String> list) {
		String[] strArr={"我是一个粉刷匠","卖报纸","拔萝卜","小兔子乖乖","小跳蛙"};
		for(int i=0;i<strArr.length;i++){
			list.add(strArr[i]);
		}
		/*
		list.add("我是一个粉刷匠");
		list.add("卖报纸");
		list.add("拔萝卜");
		list.add("小兔子乖乖");
		list.add("小跳蛙");
		*/
	}
	//打印歌单
	public static void printList(LinkedList<String> list){
		System.out.println("当前歌单为:");
		Iterator<String> it=list.iterator();
		while(it.hasNext()){
			System.out.print(it.next()+" ");
		}
		System.out.println("\n");
	}
	//添加
	private static void addSong(LinkedList<String> list) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入要添加的歌曲名称:");
		String str = sc.next();
		list.add(str); // 将歌曲添加到列表最后
		System.out.println("已添加歌曲:"+str);
	}

	//置顶
	private static void setTop(LinkedList<String> list) {
		Scanner sc=new Scanner(System.in);
		System.out.print("请输入要置顶的歌曲名称:");
		String str=sc.next();
		
		int i=list.indexOf(str);//返回下标
		
		if(i<0) 
			System.out.println("当前列表没有这首歌曲");
		else {
			list.remove(str);
			list.addFirst(str);
		}
	}
	//提前一位
	private static void setBefore(LinkedList<String> list) {
		Scanner sc=new Scanner(System.in);
		System.out.print("请输入前移的歌曲名称:");
		String str=sc.next();
		
		int i=list.indexOf(str);//返回一个下标
		if(i<0)
			System.out.println("当前列表没有这首歌");
		else if(i==0)
			System.out.println("当前歌曲"+str+"已经在最前面");
		else {
			list.remove(str);
			list.add(i-1, str);

		}
	}
	//退出
	private static void exit() {
		System.out.println("您已退出点歌系统");
		System.exit(0);
	}
}

三、 java模拟银行登录程序

java实现用户名限制不能是敏感词 java注册中防止用户名重复_System_02


1.用户类 基本信息 有参无参构造方法 toString()重写

2.银行类 账户金额存入、取出和查询操作

定义初始金额和User

private int account;
private User user;

3.测试类
创建集合

public static HashMap<String,User> users=new HashMap<String,User>();

信息初始化

User u1=new User("1001","123456","黎明","13212345670",1000);
User u2=new User("1002","234576","黑夜","18215345670",1200);
User u3=new User("1003","103436","破晓","15512345670",1500);

输出结果:

java实现用户名限制不能是敏感词 java注册中防止用户名重复_User_03

四、小练习

选择合适的Map集合保存5位学员的学号和姓名,然后按照学号的自然存储顺序的倒序将这些键值对一一打印出来。

import java.util.*;
public class Test {
	public static void main(String[] args) {
		TreeMap<String,String> map=new TreeMap<String,String>();
		map.put("1", "Lucy");
		map.put("4", "Aimee");
		map.put("5", "Amanda");
		map.put("3", "Smith");
		map.put("2", "John");
		Set<String> set=map.keySet();
		Iterator<String> it=set.iterator();
		while(it.hasNext()){
			String key=it.next();
			System.out.println(key+":"+map.get(key));
		}
	}
}