1、已知郑州市内燃油车限行政策如下:
    每周一 限行 尾号为 1,6的车牌号
    每周二 限行 尾号为 2,7的车牌号
    每周三 限行 尾号为 3,8的车牌号
    每周四 限行 尾号为 4,9的车牌号
    每周五 限行 尾号为 5,0的车牌号
    如果车牌号尾号不为数字,那么往前推一位,直到是数字为止,进行限行
    例如: 豫A558A9 尾号为9
    豫A5589B 尾号也为9
    编写一个程序,用户随意输入一个车牌,判断该车牌今日是否限行。

    1. package com.qfedu.homework;
    2. import java.util.Calendar;
    3. import java.util.Scanner;
    4. /**
    5. * @Author laoyan
    6. * @Description TODO
    7. * @Date 2022/3/11 9:58
    8. * @Version 1.0
    9. */
    10. public class Demo01 {
    11. /**
    12. * 已知郑州市内燃油车限行政策如下:
    13. * 每周一 限行 尾号为 1,6的车牌号
    14. * 每周二 限行 尾号为 2,7的车牌号
    15. * 每周三 限行 尾号为 3,8的车牌号
    16. * 每周四 限行 尾号为 4,9的车牌号
    17. * 每周五 限行 尾号为 5,0的车牌号
    18. * 如果车牌号尾号不为数字,那么往前推一位,直到是数字为止,进行限行
    19. * 例如: 豫A558A9 尾号为9
    20. * 豫A5589B 尾号也为9
    21. * 编写一个程序,用户随意输入一个车牌,判断该车牌今日是否限行。
    22. */
    23. public static void main(String[] args) {
    24. Scanner scanner = new Scanner(System.in);
    25. System.out.println("请输入一个车牌号:");
    26. String carNum = scanner.next();
    27. System.out.println(validateCarNum(carNum) ? "该车牌限行":"今天不限行,随便开");
    28. }
    29. /**
    30. * 给定一个车牌号,返回
    31. * true : 限行
    32. * false : 不限行
    33. */
    34. private static boolean validateCarNum(String carNum) {
    35. /**
    36. * 变为字符数组
    37. * 使用lastIndexOf
    38. */
    39. char[] arr = carNum.toCharArray();
    40. int endNum = -1 ;
    41. for (int i = arr.length -1 ; i >= 0 ; i--) {
    42. /**
    43. * '0' --> 48
    44. * '9' --> 57
    45. */
    46. if(arr[i] >= 48 && arr[i] <= 57){
    47. // 得到了一个 '9' --> 9
    48. /*
    49. 字符转换为 数字 也可以通过 将字符变为字符串,字符串再变为 int
    50. */
    51. endNum = arr[i] - 48;
    52. break;
    53. }
    54. }
    55. System.out.println("尾号为:"+endNum);
    56. int weekDay = todayIsWeekDay();
    57. /**
    58. * endNum 1 6 限行 1
    59. * endNum 2 7 限行 2
    60. */
    61. /*if(endNum % 5 == weekDay ){
    62. return true;
    63. }*/
    64. if(endNum == weekDay || (endNum + 5) % 10 == weekDay){
    65. return true;
    66. }
    67. return false;
    68. }
    69. /**
    70. * 获取当天的星期数
    71. */
    72. private static int todayIsWeekDay() {
    73. Calendar instance = Calendar.getInstance();
    74. return instance.get(Calendar.DAY_OF_WEEK) - 1;
    75. }
    76. }

    2、
    【难】从控制台输入一个字符串,记录出现次数最多的字符,并输出这个字符出现了多少次。
    例如:
    从控制台输入 hello,输出: 出现次数最多的字符是 ‘l’,出现了2次。
    从控制台输入 helle,输出: 出现次数最多是字符出 ‘l’和’e’,出现了2次。

    1. package com.qfedu.homework;
    2. import java.util.Arrays;
    3. import java.util.Scanner;
    4. /**
    5. * @Author laoyan
    6. * @Description TODO
    7. * @Date 2022/3/11 10:50
    8. * @Version 1.0
    9. */
    10. public class Demo02 {
    11. /**
    12. * 从控制台输入一个字符串,记录出现次数最多的字符,并输出这个字符出现了多少次。
    13. * 例如:
    14. * 从控制台输入 hello,输出: 出现次数最多的字符是 'l',出现了2次。
    15. * 从控制台输入 helle,输出: 出现次数最多是字符出 'l'和'e',出现了2次。
    16. *
    17. * 想法一:
    18. * 数组 [0,0,0,0,0]
    19. * 数组 [h,e,l,l,o]
    20. * [1,1,2,1,1]
    21. * 求数组中的最大值,然后找最大值对应的字符是哪个
    22. * 第二种思路:
    23. * 定义一个类
    24. * class ZiMu{
    25. * String str ; --> h
    26. * int num ; --> 出现的次数
    27. * }
    28. * ZiMu[] arr =new ZiMu[];
    29. * 封装一个个的对象 出现一个字母,次数就加1
    30. * 后来进行排序: 需要自定义排序规则
    31. */
    32. public static void main(String[] args) {
    33. Scanner scanner = new Scanner(System.in);
    34. System.out.println("请输入一个字符串:");
    35. String inPut = scanner.next();
    36. char[] arr = inPut.toCharArray();
    37. // 这个sb 是用来拼接最终的打印输出的
    38. StringBuilder sb =new StringBuilder("您输入的字符串中出现次数最多的字符是:") ;
    39. // 我需要定义一个数组,这个数组中存放对应的字符出现的次数
    40. int[] nums = new int[inPut.length()]; // [1,1,2,2,1]
    41. // helle
    42. for (int i = 0; i < arr.length; i++) {
    43. int count = 0;
    44. for (int j = i; j < arr.length; j++) {
    45. if(arr[i] == arr[j]){
    46. count++;
    47. }
    48. }
    49. nums[i] = count;
    50. }
    51. System.out.println(Arrays.toString(nums));
    52. // 此处求出数组中的最大值
    53. int max = getMax(nums);
    54. System.out.println("max="+max);
    55. // 找出来最大值对应的下标所对应的字符
    56. for (int i = 0; i < nums.length; i++) {
    57. if(max == nums[i]){
    58. sb.append(arr[i]);
    59. sb.append(",它出现了").append(max+"次;");
    60. }
    61. }
    62. System.out.println(sb.toString());
    63. }
    64. /**
    65. * 得到数组中的最大值
    66. * @param arr
    67. * @return
    68. */
    69. public static int getMax(int[] arr){
    70. if(arr.length > 0){
    71. int max = arr[0];
    72. for (int a:arr) {
    73. if(max < a){
    74. max = a;
    75. }
    76. }
    77. return max;
    78. }else{
    79. return -1;
    80. }
    81. }
    82. }

    3、编写一个方法,传入一个字符串,将该字符串反转输出。(不可以直接使用反转方法)

    1. package com.qfedu.homework;
    2. import java.util.Scanner;
    3. /**
    4. * @Author laoyan
    5. * @Description TODO
    6. * @Date 2022/3/11 11:31
    7. * @Version 1.0
    8. */
    9. public class Demo03 {
    10. public static void main(String[] args) {
    11. Scanner scanner = new Scanner(System.in);
    12. System.out.println("请输入一个字符串:");
    13. String inPut = scanner.next();
    14. System.out.println(reverse(inPut));
    15. }
    16. private static String reverse(String str) {
    17. char[] arr = str.toCharArray();
    18. /*
    19. [h,e,l,l,o]
    20. */
    21. for (int i = 0; i < arr.length / 2; i++) {
    22. char temp = arr[i];
    23. arr[i] = arr[arr.length-1-i];
    24. arr[arr.length-1-i] = temp;
    25. }
    26. return new String(arr);
    27. }
    28. }

    4、给定一个长度,生成一个指定长度的字符串,这个字符串由随机的字母、数字或下划线组成。(不用必须同时包含字母、数字、下划线)

    package com.qfedu.homework;
    
    import java.util.Random;
    
    /**
     * @Author laoyan
     * @Description TODO
     * @Date 2022/3/11 11:39
     * @Version 1.0
     */
    public class Demo04 {
        /**
         * 4、给定一个长度,生成一个指定长度的字符串,这个字符串由随机的字母、数字或下划线组成。(不用必须同时包含字母、数字、下划线)
         * @param args
         */
        public static void main(String[] args) {
            String validateCode = getValidateCode(5);
            System.out.println(validateCode);
        }
    
        private static String getValidateCode(int length) {
            // 数字 字母 下划线
            String  source = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_";
            char[] arr = source.toCharArray();
            String validateCode = "";
            Random random = new Random();
    
            for (int i = 0; i < length; i++) {
                int index = random.nextInt(source.length());
                char c = arr[index];
                validateCode += c;
            }
    
            return validateCode;
        }
    }
    

    5、如下字符串:

    01#张三#20*02#李四#18*03#王五#22*04#赵六#20*05#田七#21 <br />创建Student类,属性:学号  姓名 年龄<br />      1.将这些Student对象放进数组中<br />      2.查询里面有没有叫田七的学生如果存在则打印学生的具体信息(封装成方法,键盘输入姓名)<br />      3.计算所有学生的平均年龄,最大年龄,最小年龄<br />      4.如果存在名字叫张三的将名字改为张兵
    
    package com.qfedu.homework;
    
    import java.util.Arrays;
    
    /**
     * @Author laoyan
     * @Description TODO
     * @Date 2022/3/11 11:47
     * @Version 1.0
     */
    
    class Student{
        private int id;
        private String name;
        private int age;
    
        public Student(int id, String name, int age) {
            this.id = id;
            this.name = name;
            this.age = age;
        }
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        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;
        }
    
        @Override
        public String toString() {
            return "Student{" +
                    "id=" + id +
                    ", name='" + name + '\'' +
                    ", age=" + age +
                    '}';
        }
    }
    public class Demo05 {
    
    
        /**
         * 5、如下字符串:
         *
         *     01#张三#20*02#李四#18*03#王五#22*04#赵六#20*05#田七#21
         * 创建Student类,属性:学号  姓名 年龄
         *       1.将这些Student对象放进数组中
         *       2.查询里面有没有叫田七的学生如果存在则打印学生的具体信息(封装成方法,键盘输入姓名)
         *       3.计算所有学生的平均年龄,最大年龄,最小年龄
         *       4.如果存在名字叫张三的将名字改为张兵
         * @param args
         */
        public static void main(String[] args) {
    
            Student[] students = getData();
    
            Student stu = searchStuByName(students,"田七");
            System.out.println(stu);
    
            showMaxAndMinAndAvgAge(students);
    
            editStuByName(students,"张三","张兵");
    
    
    
        }
    
        private static void editStuByName(Student[] students, String oldName, String newName) {
    
            Student student = searchStuByName(students, oldName);
            student.setName(newName);
    
            System.out.println(Arrays.toString(students));
    
        }
    
        private static void showMaxAndMinAndAvgAge(Student[] students) {
    
            int  maxAge = students[0].getAge();
            int  minAge = students[0].getAge();
    
            int countAge = 0;
    
            for (Student stu:students) {
                 int stuAge = stu.getAge();
                 if( stuAge> maxAge){
                     maxAge = stuAge;
                 }
                 if(stuAge < minAge){
                     minAge = stuAge;
                 }
                countAge += stuAge;
            }
    
            System.out.println("最大年龄是:"+maxAge+",最小年龄:"+minAge + ".平均年龄:"+(countAge*1.0/students.length));
    
        }
    
        private static Student searchStuByName(Student[] students, String name) {
    
            for (Student stu :students) {
                 if(stu.getName().equals(name)){
                      return stu;
                 }
            }
            return null;
    
        }
    
        public static Student[] getData(){
    
            String source = "01#张三#20*02#李四#18*03#王五#22*04#赵六#20*05#田七#21";
            String[] arr = source.split("\\*");
    
            Student[] stuArr = new Student[arr.length];
            for (int i=0;i<arr.length;i++) {
                //01#张三#20
                String stuStr = arr[i];
                String[] s = stuStr.split("#");
                Student student = new Student(Integer.valueOf(s[0]), s[1], Integer.valueOf(s[2]));
                stuArr[i] = student;
            }
    
            System.out.println(Arrays.toString(stuArr));
    
            return stuArr;
        }
    }
    

    6、联系人

    public interface Operation {/ /添加联系人public abstract LinkMan[] addLinkMan(LinkMan linkMan, LinkMan[] linkMans);//按姓名删除联系人public abstract LinkMan[] deleteLinkManByName (String name, LinkMan[] linkMans);/ /按联系号码删除联系人public abstract LinkMan[] deleteLinkManByNumber (String number, LinkMan[] linkMans);/ /按姓名修改联系人号码public abstract LinkMan[] setLinkMan( String name, String number , LinkMan[] linkMans);/ /按姓名查询联系人public abstract LinkMan searchL inkMan(String name, LinkMan[] linkMans);/ /查询所有的联系人public abstract void searchA1l(LinkMan[] linkMans);}设计一个类,实现Operation接口,完成功能向电话本中添加,删除,修改,查询联系人信息,所有的联系人信息存储在数组中设计LinkMan类,姓名,年龄,性别,号码属性,get/set, 构造方法,重写toString所有逻辑功能,要求设计一个工具类

    package com.qfedu.homework.linkman;
    
    /**
     * @Author laoyan
     * @Description TODO
     * @Date 2022/3/9 17:24
     * @Version 1.0
     *
     *  ctrl + alt + L  格式化代码
     *  Code 工具栏中的
     */
    public interface Operation {
    
        //添加联系人
        public abstract LinkMan[] addLinkMan(LinkMan linkMan, LinkMan[] linkMans);
    
        //按姓名删除联系人
        public abstract LinkMan[] deleteLinkManByName(String name, LinkMan[] linkMans);
    
        //按联系号码删除联系人
        public abstract LinkMan[] deleteLinkManByNumber(String number, LinkMan[] linkMans);
    
        //按姓名修改联系人号码
        public abstract LinkMan[] setLinkMan(String name, String number, LinkMan[] linkMans);
    
        //按姓名查询联系人
        public abstract LinkMan searchLinkMan(String name, LinkMan[] linkMans);
    
        //查询所有的联系人
        public abstract void searchA1l(LinkMan[] linkMans);
    }
    
    package com.qfedu.homework.linkman;
    
    import java.util.Arrays;
    
    /**
     * @Author laoyan
     * @Description TODO
     * @Date 2022/3/9 17:26
     * @Version 1.0
     */
    public class TelephoneTools implements Operation{
    
    
        @Override
        public LinkMan[] addLinkMan(LinkMan linkMan, LinkMan[] linkMans) {
            /**
             *  思路:
             */
            LinkMan[] newLinkMans = Arrays.copyOf(linkMans,linkMans.length+1);
            newLinkMans[newLinkMans.length-1]  = linkMan;
    
            return newLinkMans;
        }
    
        @Override
        public LinkMan[] deleteLinkManByName(String name, LinkMan[] linkMans) {
            return new LinkMan[0];
        }
    
    
        /**
         *      [zhangsan,lisi,wangwu,zhaoliu,tianqi]  删除李四
         *      [zhangsan,wangwu]
         * @param number
         * @param linkMans
         * @return
         */
        @Override
        public LinkMan[] deleteLinkManByNumber(String number, LinkMan[] linkMans) {
    
            //LinkMan[] newLinkMans = new LinkMan[linkMans]
            for (int i = 0; i < linkMans.length; i++) {
                if(number.equals(linkMans[i].getPhone())){
                    // 可以获取到  该手机号码对应的这个联系人的下标, 从这个下标开始,后面的往前移动
                    //  [zhangsan,lisi,wangwu,zhaoliu,tianqi]
                    //  [zhangsan,wangwu,zhaoliu,tianqi,tianqi]
                    for (int j = i; j < linkMans.length - 1 ; j++) {
                         linkMans[j] = linkMans[j+1];
                    }
                }
            }
    
            linkMans = Arrays.copyOfRange(linkMans,0,linkMans.length-1);
    
            return  linkMans;
        }
    
        @Override
        public LinkMan[] setLinkMan(String name, String number, LinkMan[] linkMans) {
            LinkMan linkMan = searchLinkMan(name, linkMans);
            linkMan.setPhone(number);
            return linkMans;
        }
    
        @Override
        public LinkMan searchLinkMan(String name, LinkMan[] linkMans) {
    
            for (LinkMan linkMan: linkMans) {
                 if(name.equals(linkMan.getName())){
                     return linkMan;
                 }
            }
            return null;
        }
    
        /**
         *  展示所有联系人
         * @param linkMans
         */
        @Override
        public void searchA1l(LinkMan[] linkMans) {
    
            for (LinkMan man:linkMans) {
                if(null == man){
                    System.out.println("已经展示完毕,再见!");
                    break;
                }
                System.out.println(man);
            }
        }
    }
    
    package com.qfedu.homework.linkman;
    
    /**
     * @Author laoyan
     * @Description TODO
     * @Date 2022/3/9 17:21
     * @Version 1.0
     *
     * 设计LinkMan类,姓名,年龄,
     * 性别,号码属性,get/set, 构造方法,重写toString
     */
    public class LinkMan {
    
        private String name;
        private int age;
        private char gender;
        private String phone;
    
        public LinkMan(String name, int age, char gender, String phone) {
            this.name = name;
            this.age = age;
            this.gender = gender;
            this.phone = phone;
        }
    
        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 char getGender() {
            return gender;
        }
    
        public void setGender(char gender) {
            this.gender = gender;
        }
    
        public String getPhone() {
            return phone;
        }
    
        public void setPhone(String phone) {
            this.phone = phone;
        }
    
        @Override
        public String toString() {
            return name + "\t" + age + "\t" + gender + "\t"  + phone ;
        }
    }
    
    package com.qfedu.homework.linkman;
    
    import java.util.Arrays;
    import java.util.Scanner;
    
    /**
     * @Author laoyan
     * @Description TODO
     * @Date 2022/3/9 17:30
     * @Version 1.0
     */
    public class MainScreen {
    
        /**
         * 打印操作界面
         */
        public static void showScreen() {
    
            System.out.println("欢迎来到xx手机联系人系统");
            String[] arr = {"1.查询所有联系人", "2.通过手机号码删除联系人", "3.通过姓名删除联系人", "4.添加联系人", "5.按照姓名查询联系人", "6.按照姓名修改联系人"};
            for (String opration : arr) {
                System.out.println(opration);
            }
            System.out.println("请输入您要选择功能序号[1~6]:");
        }
    
        /**
         * 判断一个字符串是否为数字,便于转换
         *
         * @param str
         * @return
         */
        public static boolean isNum(String str) {
            String regex = "[0-9]+";
            return str.matches(regex);
        }
    
    
        public static void main(String[] args) {
    
    
            Scanner scanner = new Scanner(System.in);
            TelephoneTools telephoneTools = new TelephoneTools();
            // 将来存储所有的联系人,目前里面有100个空的联系人 [null,null,xxxxxxx,xxx....]
            LinkMan[] linkMans = new LinkMan[0];
    
            do {
                showScreen();
                String numStr = scanner.next();
                if (isNum(numStr)) {
                    /**
                     *  如何判定用户输入的是数字呢?
                     */
                    Integer num = Integer.valueOf(numStr);
                    if (num >= 1 && num <= 6) {
                        switch (num) {
                            case 1:
                                //此处查询所有联系人
                                // 打印所有联系人
                                telephoneTools.searchA1l(linkMans);
                                // 展示主要屏幕
                                showScreen();
                                break;
                            case 2:
                                //2.通过手机号码删除联系人
                                System.out.println("请输入手机号码:");
                                String _phone = scanner.next();
                                // 每一次不管是添加还是删除,都会产生新的数组,需要使用老的linkMans 变量指向新的数组。
                                linkMans = telephoneTools.deleteLinkManByNumber(_phone,linkMans);
                                telephoneTools.searchA1l(linkMans);
                                break;
                            case 3:
                                 //3.通过姓名删除联系人
                                break;
                            case 4:
                                System.out.println("请输入姓名,年龄,性别,手机号码以' '隔开:");
                                String name = scanner.next();
                                int age = scanner.nextInt();
                                char sex = scanner.next().charAt(0);
                                String phone = scanner.next();
    
                                LinkMan linkMan = new LinkMan(name, age, sex, phone);
                                // 添加联系人核心方法
                                linkMans = telephoneTools.addLinkMan(linkMan, linkMans);
                                //System.out.println(Arrays.toString(linkMEN));
                                // 展示所有的联系人信息
                                telephoneTools.searchA1l(linkMans);
                                break;
                            case 5:
                                System.out.println("请输入姓名:");
                                String _name = scanner.next();
                                LinkMan linkMan1 = telephoneTools.searchLinkMan(_name, linkMans);
                                System.out.println(linkMan1);
    
                                break;
                            case 6:
                                System.out.println("请输入要修改的用户的姓名以及要修改的手机号码:");
                                String name2 = scanner.next();
                                String phoneNum = scanner.next();
                                telephoneTools.setLinkMan(name2,phoneNum,linkMans);
                                telephoneTools.searchA1l(linkMans);
                                break;
                        }
                    } else {
                        System.out.println("输入有误,请输入1~6 之间的数字:");
                    }
                } else {
                    System.out.println("输入有误,请输入数字类型");
                }
    
            } while (true);
    
        }
    }
    

    7、DVD 案例
    image.png
    image.png

    package com.qfedu.homework.dvd;
    
    import java.util.Date;
    
    /**
     * @Author laoyan
     * @Description TODO
     * @Date 2022/3/11 16:26
     * @Version 1.0
     */
    public class DVD {
    
        private String name;
        private int status = 1;    // 0 代表借出,1 代表可借
        private Date lendDate; // 借出日期
        private int lendTime;  // 借出了多少次
    
        public DVD(String name) {
            this.name = name;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getStatus() {
    
            return status;
        }
    
        public String getStatusStr(){
            if(status == 0){
                return "不可借";
            }
            return "可借";
        }
    
        public void setStatus(int status) {
            this.status = status;
        }
    
        public Date getLendDate() {
            return lendDate;
        }
    
        public void setLendDate(Date lendDate) {
            this.lendDate = lendDate;
        }
    
        public int getLendTime() {
            return lendTime;
        }
    
        public void setLendTime(int lendTime) {
            this.lendTime = lendTime;
        }
    
        @Override
        public String toString() {
            return "DVD{" +
                    "name='" + name + '\'' +
                    ", status=" + status +
                    ", lendDate=" + lendDate +
                    ", lendTime=" + lendTime +
                    '}';
        }
    }
    
    package com.qfedu.homework.dvd;
    
    import java.util.Arrays;
    import java.util.Date;
    
    /**
     * @Author laoyan
     * @Description TODO
     * @Date 2022/3/11 16:26
     * @Version 1.0
     */
    public class DVDTools {
    
    
        public static DVD[] addDvd(DVD dvd, DVD[] dvdArr) {
            dvdArr = Arrays.copyOf(dvdArr, dvdArr.length + 1);
            dvdArr[dvdArr.length-1] = dvd;
            System.out.println(Arrays.toString(dvdArr));
            System.out.println("添加成功");
            return dvdArr;
        }
    
        /**
         *  删除
         * @param dvdName
         * @param dvdArr
         * @return
         */
        public static DVD[] deleteDvd(String dvdName, DVD[] dvdArr) {
            for (int i = 0; i < dvdArr.length; i++) {
                 if(dvdName.equals(dvdArr[i].getName())){
                     for (int j = i; j < dvdArr.length-1; j++) {
                          dvdArr[j]=dvdArr[j+1];
                     }
                 }
            }
            dvdArr = Arrays.copyOfRange(dvdArr,0,dvdArr.length-1);
            return dvdArr;
        }
    
        /**
         *
         * @param dvdArr
         */
        public static DVD[] lendDvd(String dvdName, DVD[] dvdArr) {
            for (int i = 0; i < dvdArr.length; i++) {
                DVD dvd = dvdArr[i];
                if(dvdName.equals(dvd.getName())){
                    dvd.setStatus(0);
                    dvd.setLendTime(dvd.getLendTime()+1);
                    dvd.setLendDate(new Date());
                }
            }
            return dvdArr;
        }
    
        public static void show(DVD[] dvdArr) {
    
            System.out.println("序号  状态  名称  借出如期    借出次数");
            for (int i=0;i < dvdArr.length;i++) {
                DVD dvd = dvdArr[i];
                System.out.println((i+1)+"  "+dvd.getStatusStr()+" "+dvd.getName()+"   "+dvd.getLendDate()+" "+dvd.getLendTime());
            }
    
        }
    }
    
    package com.qfedu.homework.dvd;
    
    import com.qfedu.homework.linkman.LinkMan;
    import com.qfedu.homework.linkman.TelephoneTools;
    
    import java.util.Scanner;
    
    /**
     * @Author laoyan
     * @Description TODO
     * @Date 2022/3/11 16:27
     * @Version 1.0
     */
    public class MainScreen {
    
    
        /**
         * 打印操作界面
         */
        public static void showScreen() {
    
            System.out.println("欢迎来到DVD租赁系统");
            String[] arr = {"1.新增", "2.查看", "3.删除", "4.借出", "5.归还", "6.退出"};
            for (String opration : arr) {
                System.out.println(opration);
            }
            System.out.println("请输入您要选择功能序号[1~6]:");
        }
    
        /**
         * 判断一个字符串是否为数字,便于转换
         *
         * @param str
         * @return
         */
        public static boolean isNum(String str) {
            String regex = "[0-9]+";
            return str.matches(regex);
        }
    
    
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            DVDTools dvdTools = new DVDTools();
            // 将来存储所有的联系人,目前里面有100个空的联系人 [null,null,xxxxxxx,xxx....]
            DVD[] dvdArr = new DVD[0];
    
            do {
                showScreen();
                String numStr = scanner.next();
                if (isNum(numStr)) {
                    /**
                     *  如何判定用户输入的是数字呢?
                     */
                    Integer num = Integer.valueOf(numStr);
                    if (num >= 1 && num <= 6) {
                        switch (num) {
                            case 1:
    
                                System.out.println("请输入DVD名字:");
                                String name = scanner.next();
    
                                DVD dvd = new DVD(name);
                                dvdArr = DVDTools.addDvd(dvd,dvdArr);
                                // 此处需要调用一个查看方法
                                DVDTools.show(dvdArr);
                                // 展示主要屏幕
                                showScreen();
                                break;
                            case 2:
    
                                DVDTools.show(dvdArr);
                                break;
                            case 3:
                                System.out.println("请输入要删除的DVD名字:");
                                String _name = scanner.next();
                                // DVDTools.deleteDvd(_name,dvdArr);  // 错误演示
                                dvdArr =DVDTools.deleteDvd(_name,dvdArr);
                                DVDTools.show(dvdArr);
                                break;
                            case 4:
                                System.out.println("请输入要借出的DVD名字:");
                                String name2 = scanner.next();
                                DVDTools.lendDvd(name2,dvdArr);
                                DVDTools.show(dvdArr);
                                break;
                            case 5:
    
    
                                break;
                            case 6:
    
                                break;
                        }
                    } else {
                        System.out.println("输入有误,请输入1~6 之间的数字:");
                    }
                } else {
                    System.out.println("输入有误,请输入数字类型");
                }
    
            } while (true);
        }
    
    
    }