要求:
1.添加学生,可以无限添加学生名字到这个数组中
2.删除学生,可以删除指定的学生
3.可以查询所有学生
4.可以查询指定姓氏的学生(模糊查询)
5.可以查询指定的学生
6.可以修改指定位置的学生姓名
使用封装的方法;
先定义一个student类
public class Student {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name=name;
}
}
然后定义一个主类来调用;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ArrayList {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
java.util.ArrayList<Student> list = new java.util.ArrayList<Student>();
boolean flag = true;
while (flag) {
System.out.println("请输入你要执行的功能:1添加;2删除;3遍历所有人;4模糊查找;5指定查找;6修改;0退出");
int i = sc.nextInt();
String name, name2;
if (i < 0 | i > 6) {
System.out.println("0~6啊,呆瓜别输错了!");
} else {
switch (i) {
case 0:
flag = false;
break;
case 1:
System.out.println("请输入要添加的名字:");
name = sc.next();
AddStu(list, name);
break;
case 2:
System.out.println("请输入要删除的名字:");
name = sc.next();
DelStu(list, name);
break;
case 3:
ShowStu(list);
break;
case 4:
System.out.println("请输入要模糊查找的名或姓:");
name = sc.next();
TryFindStu(list, name);
break;
case 5:
System.out.println("请输入要查找的名字:");
name = sc.next();
FindStu(list, name);
break;
case 6:
System.out.println("请输入要替换的名字:");
name = sc.next();
System.out.println("请输入替换后的名字:");
name2 = sc.next();
ChangeStu(list, name, name2);
break;
}
}
}
}
// 1.添加
public static void AddStu(java.util.ArrayList<Student> list, String name) {
Student s = new Student();
s.setName(name);
list.add(s);
// list.add(name);
System.out.println("添加成功!");
}
// 2.删除
public static void DelStu(java.util.ArrayList<Student> list, String name) {
Student s = new Student();
for (int i = 0; i < list.size(); i++) {
Student student = list.get(i);
if (student.getName().equals(name)) {
list.remove(i);
System.out.println("删除成功!");
return;
}
}
System.out.println("删除失败!");
}
// 3.遍历所有人
public static void ShowStu(java.util.ArrayList<Student> list) {
Student s = new Student();
if(list.size()==0) {
System.out.println("没有信息,请输入信息在查看!");
return;
}
for (int i = 0; i < list.size(); i++) {
Student student = list.get(i);
System.out.println(student.getName());
}
}
// 4.模糊查询
public static void TryFindStu(java.util.ArrayList<Student> list, String name) {
Student s = new Student();
java.util.ArrayList<String> list2 = new java.util.ArrayList<String>();
// 模糊查询 使用(Pattern、Matcher)
Pattern pattern = Pattern.compile(name);
for (int i = 0; i < list.size(); i++) {
Student student = list.get(i);
Matcher matcher = pattern.matcher((CharSequence) (student.getName()));
if (matcher.find()) { // matcher.find()-为模糊查询 matcher.matches()-为精确查询
list2.add(student.getName());
}
}
// 输出结果
System.out.println(list2);
}
// 5.查找指定人
public static void FindStu(java.util.ArrayList<Student> list, String name) {
for (int i = 0; i < list.size(); i++) {
Student student = list.get(i);
if (student.getName().equals(name)) {
System.out.println("有这个人,他的索引位是:" + i);
return;
}
}
System.out.println("没有这个人!");
}
// 6.修改
public static void ChangeStu(java.util.ArrayList<Student> list, String name, String name2) {
Student s = new Student();
s.setName(name2);
for (int i = 0; i < list.size(); i++) {
Student student = list.get(i);
if (student.getName().equals(name)) {
list.set(i, s);
break;
}
}
System.out.println("修改后的所有人:");
for (int i = 0; i < list.size(); i++) {
Student student = list.get(i);
System.out.println(student.getName());
}
}
}