Java集合基础练习题

1、注册功能

(1)界面:

注册页面==
请输入用户名:
请输入密码:

(2)验证

要求:用户名必须是6-18个字符,且全是字母;密码必须6位,且全是数字。
如果满足要求,使用map存储起来;否则提示注册失败和失败原因!

package Java练习题;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class userRegistered {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.println("==注册页面==");
		System.out.println("请输入用户名:");
		String userName = input.next();
		System.out.println("请输入密码:");
		String userPassward = input.next();
		
		char [] charNameArray = userName.toCharArray();
		char [] charPasswardArray = userPassward.toCharArray();
		boolean isUserNameWrong = false;
		boolean isPasswardWrong = false;
		//判断输入的用户名是否正确
		for(int i = 0; i<charNameArray.length;i++) {
			if((charNameArray[i]>=65&&charNameArray[i]<=90)||(charNameArray[i]>=97&&charNameArray[i]<=122)) {
				continue;
			}else{
				System.out.println("您输入的用户名错误!");
				isUserNameWrong = true;
				break;
			}
		}
		//判断输入的密码是否正确
		if(isUserNameWrong == false) {
			for(int i = 0; i<charPasswardArray.length;i++) {
				if((charPasswardArray[i]>=0&&charPasswardArray[i]<=9)) {
					continue;
				}else{
					System.out.println("您输入的密码错误!");
					isPasswardWrong = true;
					break;
				}
			}
		}
		//如果输入的用户名和密码都正确,使用map存用户名和密码
		if(isUserNameWrong == false && isPasswardWrong == false) {
			Map<String, String> map = new HashMap<String, String>();
			map.put(userName, userPassward);
			map.forEach((name,pwd)->{
				System.out.println("用户名:" + name);
				System.out.println("密码:" + pwd);
			});
		}
	}
}

2、登录功能

(1)准备
首先使用map存储一些已经注册过的用户信息
(2)界面
=登录页面==
请输入用户名:
请输入密码:
(3)验证
如果用户名和密码全都正确,提示登录成功;
如果用户名错误,提示登录失败,用户名不存在;
如果密码错误,提示登录失败密码错误。

package Java练习题;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class userLogin {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		Map<String, String> map = new HashMap<String, String>();
		map.put("zhangsan", "123456");
		map.put("lisi", "123456");
		map.put("wangwu", "123456");
		map.put("zhaoliu", "123456");
		map.put("maqi", "123456");
		
		System.out.println("请输入用户名:");
		String userName = input.next();
		
		System.out.println("请输入密码:");
		String userPassward = input.next();
		
		if(map.containsKey(userName)) {
			if(map.get(userName).equals(userPassward)) {
				System.out.println("登陆成功!");
			}else {
				System.out.println("登陆失败,您输入的密码错误!");
			}
		}else {
			System.out.println("登陆失败,您输入的用户名不存在!");
		}	
	}
}

3、编写敏感词过滤程序

输入一个字符串,将里面的敏感词替换成**。

说明:在网络程序中,如聊天室、聊天软件等,经常需要对一些用户所提交的聊天内容中的敏感性词语进行过滤。如“色情”“恐怖”、“枪”、“军火”等,这些都不可以在网上进行传播,需要过滤掉或者用其他词语替换掉。

package Java练习题;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Scanner;

public class sensitiveWordFiltering {
	public static void main(String[] args) {
		
		Scanner input = new Scanner(System.in);	
		System.out.println("请输入一个字符串:");
		String s = input.next();
		List<String> list = new ArrayList<String>();
		list.add("色情");
		list.add("恐怖");
		list.add("枪");
		list.add("军火");
		for(String sensitiveWord:list) {	
			if(sensitiveWord.length()==1) {
				 s = s.replaceAll(sensitiveWord, "*");
			}else {
				 s = s.replaceAll(sensitiveWord, "**");
			}	
		}
		System.out.println("您输入的字符串为:" + s);
	}
}

运行结果:

在这里插入图片描述

4、计算某年、某月、某日和某年、某月、某日之间的天数间隔和周数。

package Java练习题;
import java.text.SimpleDateFormat;
import java.util.Scanner;

public class timeDifference {
	public static void main(String[] args) throws Exception{
		Scanner input = new Scanner(System.in);
		System.out.println("请输入起始日期,格式为XXXX-XX-XX:");
		String startDate = input.next();
		System.out.println("请输入结束日期,格式为XXXX-XX-XX:");
		String endDate = input.next();
		//解析日期
		SimpleDateFormat sdFormat = new SimpleDateFormat("yyyy-MM-dd");
		//获取起始日期解析时间戳
		Long startDateFormat = sdFormat.parse(startDate).getTime();
		//获取结束日期解析时间戳
		Long endDateFormat = sdFormat.parse(endDate).getTime();
		//long型时间差
		Long timeDuration = endDateFormat - startDateFormat;
		//转化为天数
		Long days = timeDuration/1000/60/60/24;
		//转化为周数
		Long weeks = days/7;
		//一周大于3天向上取整
		if(days % 7 > 3) {
			weeks+=1;
		}
		System.out.println("相差天数:" + days);
		System.out.println("相差周数:" + weeks);
	}
}

运行结果:
在这里插入图片描述

5、有一个List集合,里面存储了5个Student对象。Student有姓名、年龄和成绩属性。

要求对List集合进行排序,排序规则是:
按照成绩降序排列;
如果成绩相同,那么姓名升序排列;
如果姓名也相同,那么年龄降序排列。

package Java练习题1114;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;

public class studentSort {
	public static void main(String[] args) {
		Student[] stu = {new Student("张三", 20, 88),new Student("李四", 22, 74),new Student("王五", 19, 83),new Student("赵六", 16, 96),new Student("马七", 25, 65)};
		//打印初始对象结合
		System.out.println("开始顺序为:");
		List<Student> list = Arrays.asList(stu);
		list.forEach((student) -> {
			System.out.println("姓名:" + student.getName() + "     年龄:" + student.getAge() + "   分数:" + student.getScore());

		});

list.sort(Comparator.comparing(Student::getScore).reversed().thenComparing(Comparator.comparing(Student::getName)).thenComparing(Comparator.comparing(Student::getAge).reversed()));

        //打印排序好的集合
		System.out.println("按照年龄排序后:");
		list.forEach((student) -> {
			System.out.println("姓名:" + student.getName() + "     年龄:" + student.getAge() + "   分数:" + student.getScore());

		});
	}
}
class Student {
	private String name;
	private int age;
	private double score;
	public Student(String name, int age, double score) {
		super();
		this.name = name;
		this.age = age;
		this.score = score;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public double getScore() {
		return score;
	}
	public void setScore(double score) {
		this.score = score;
	}
}

运行结果为:

在这里插入图片描述

  • 8
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值