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;
}
}
运行结果为: