java入门基础教程:2023.3.6第八天,java常用API(String、ArrayList)使用[java教程]

前言

记录时间:2023.3.6

已坚持的第八天

java从入门到精通

学习java时间历程记录打卡

早上6:00到 12:00

下午1:00到6:00

java常用API总结

1678097979-画布 1

完成代码练习

1.String

1.了解String类的特点

package cn.vqqc.string;

public class StringDemo1 {
    public static void main(String[] args) {
        //了解String类的特点,String是不可变的原理
        String name = "try";
        name +=  "栈";
        name += "技术栈";
        System.out.println(name);
    }

}

2.String类型创建字符串对象的2种方式

package cn.vqqc.string;
/*
    目标:String类型创建字符串对象的2种方式
 */

public class StringDemo2 {
    public static void main(String[] args) {
        //方式一:直接使用引号得到字符串对象
        String name = "我爱你中国";
        System.out.println(name);

        //方式二:
        // 1.public String()  : 创建一个空白字符串对象,不含有任何内容,(j几乎不用)
        String s1 = new String(); //s1 = ""

        //2.public String(String) : 根据传入的字符串内容,来创建字符串的对象(几乎不用)
        String s2 = new String("try栈");
        System.out.println(s2);

        //3.public String(char[] c) : 根据字符数组内容,来创建字符串的对象
        char[]  chars = {'a', 'b', '栈'};
        String s3 = new String(chars);

        //4.public String(byte[] b) : 根据字节数组内容,来创建字符串的对象
        byte[] bytes = {97, 99, 65, 66, 67};
        new String(bytes);

        System.out.println("---------------------");
        //字符串内容指向相同的地址对象
        String ss1 = "abc";
        String ss2 = "abc";
        System.out.println(ss1 == ss2);

        //用构造器得到创建字符串的对象(栈内存地址不一样)
        char[]  chars1 = {'a', 'b', 'c'};
        String ss3 = new String(chars1);
        String ss4 = new String(chars1);
//        ss3 = ss4;
        System.out.println(ss3 == ss4);





    }

}

3.程序直接编译 String常见

package cn.vqqc.string;

public class StringDemo3 {
    public static void main(String[] args) {
        //程序直接编译 String常见
        String s1 = "abc";
        String s2 = "a" + "b" + "c";
        System.out.println(s1 == s2);
    }
}

4.StringEquals的使用

package cn.vqqc.string;

import java.util.Scanner;

public class StringEqualsDemo4 {
    public static void main(String[] args) {
        //1.正确登录和密码
        String okName = "try栈";
        String okPassword = "123456";
        String sysCode = "65jKHu";

        //2.请输入登录名称和密码
        Scanner sc = new Scanner(System.in);
        System.out.println("登录名称:");
        String name = sc.next();
        System.out.println("登录密码:");
        String password = sc.next();
        System.out.println("验证码:");
        String code = sc.next();

        //3.判断用户输入的登录名称和密码与正确的内容是否相等。
        if(okName .equals(name)  && okPassword .equals(password) ||  sysCode .equalsIgnoreCase(code)){
            System.out.println("登录成功!");
        }else {
            System.out.println("用户名或者密码错误!");
        }

        //4.忽略大小写比较内容的Api :一般用于比较验证码这样的业务逻辑
        String code1 = "65jkhu";
        System.out.println(sysCode.equals((code1))); //false
        System.out.println(sysCode.equalsIgnoreCase((code1))); //true

    }
}

5.使用String完成随机生成五个的验证码

package cn.vqqc.string;

/*
    练习题 :使用String完成随机生成五个的验证码
 */

import java.util.Random;

public class StringExec {
    public static void main(String[] args) {
        //1.定义可能出现的字符信息
        String datas = "abcdefghijklmnopqrstuvwxyzABCDEFJHIJKLMNOPQRSTUVWXYZ0123456789";

        //2.循环5次,每个生成一个随机的索引,获取对应的字符连接起来即可
        String code = "";
        Random r = new Random();
        for (int i = 0; i < 5; i++) {
            //随机一个索引
            int index = r.nextInt(datas.length());
            char c = datas.charAt(index);
            code += c;
        }

        //3.输出字符串变量即可
        System.out.println(code);
    }
}

6.模拟用户登录

package cn.vqqc.string;

/*
    练习题 :模拟用户登录
 */

import java.util.Scanner;

public class StringExec1 {
    public static void main(String[] args) {
        //1.定义正确的登录名称和密码
        String okLoginName = "admin";
        String okPassword = "123456";

        //2.定义一个循环,循环3次,让用户登录
        Scanner sc = new Scanner(System.in);
        for (int i = 1; i <= 3; i++) {
            System.out.println("请您输入登录名称");
            String loginName = sc.next();
            System.out.println("请您输入登录密码");
            String password = sc.next();

            //3.判断登录是否成功!
            if(okLoginName.equals(loginName)) {
                //4.判断密码是否正确
                if (okPassword.equals(password)) {
                    System.out.println("登录成功!");
                    break;
                } else {
                    //密码错误了
                    System.out.println("您的密码不正确!您还剩余" + (3 - i) + "次机会");
                }
            }else {
                System.out.println("登录名称错误了!您还剩余" + (3 - i) + "次机会");
            }
        }
    }
}

7.屏蔽手机号中间四位数

package cn.vqqc.string;

import java.util.Scanner;

public class StringExec2 {
    public static void main(String[] args) {
        //1.键盘录入一个手机号码
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你的手机号码:");
        String tel = sc.next();

        //2.截取号码的请三位,后四位   1885484595
        String before = tel.substring(0,3);  //0  1 2
        String after = tel.substring(7); // 从索引7开始截取到手机号的末尾

        String s = before + "****" + after;
        System.out.println(s);


    }
}

2.ArrayList

1.创建ArrayList对象,代表集合容器,往里面添加元素

package cn.vqqc.arraylist;

/*
    目标: 创建ArrayList对象,代表集合容器,往里面添加元素
 */

import java.util.ArrayList;
import java.util.Objects;

public class ArrayListDemo1 {
    public static void main(String[] args) {
        //1.创建ArrayList集合对象
//        ArrayList<String> list = new ArrayList<String>();
        ArrayList<String> list = new ArrayList<>();  //JDK 1.7开始泛型后面可以不写

        //添加数据
        list.add("java");
        list.add("java");
        list.add("try栈");
//        list.add(20);
//        list.add(35.5);
        System.out.println(list);

        //3.给指定的索引的位置输入元素
        list.add(0,"try栈");
        System.out.println(list);

        ArrayList<Integer> list2 = new ArrayList<>();
        list2.add(100);
        //list2.add("java");  //报错


    }
}

2.能够使用泛型约束ArrayList集合操作的数据类型

package cn.vqqc.arraylist;

/*
    目标: 能够使用泛型约束ArrayList集合操作的数据类型
 */

import java.util.ArrayList;

public class ArrayListDemo2 {
    public static void main(String[] args) {
        ArrayList list = new ArrayList();
        //添加数据
        list.add("java");
        list.add("java");
        list.add("try栈");
        list.add(20);
        list.add(35.5);
        list.add(false);
    }
}

3.掌握ArrayList集合的常用API

package cn.vqqc.arraylist;
/*
    目标: 掌握ArrayList集合的常用API
 */

import java.util.ArrayList;

public class ArrayListDemo3 {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("java");
        list.add("java");
        list.add("try栈");
        list.add("MySql");
        list.add("HTML");

        //1.获取某个索引位置处的元素值
        System.out.println(list);
        String e =  list.get(3);
        System.out.println(e);

        //2.获取集合大小(元素个数)
        System.out.println(list.size());

        //3.完成集合遍历
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }

        //4.删除某个索引位置处的元素值,并返回被删除的元素值
        System.out.println(list); // [java, java, try栈, MySql, HTML]
        String e2 = list.remove(3);
        System.out.println(e2);
        System.out.println(list);

        //5.直接删除元素值,删除成功返回true,删除失败返回false
        System.out.println(list.remove("HTML"));
        System.out.println(list);

        System.out.println("----------------------");

        ArrayList<String> list1 = new ArrayList<>();
        list1.add("java");
        list1.add("try栈");
        list1.add("java");
        list1.add("MySql");
        list1.add("HTML");
        //只会删除第一次删除的元素,后面不删除
        System.out.println(list1.remove("java"));
        System.out.println(list1);

        //6.修改某个索引位置处的元素值
       String e3 =  list1.set(0, "小明");
        System.out.println(e3);
        System.out.println(list1);
    }
    }

4.学习遍历并删除元素的正确元素

package cn.vqqc.arraylist;

import java.util.ArrayList;

public class ArrayListTest4 {
    public static void main(String[] args) {
        //目标:学习遍历并删除元素的正确元素
        //1.创建一个Arraylist集合一个班级学生的成绩
        ArrayList<Integer> scores = new ArrayList<>();
        scores.add(98);
        scores.add(77);
        scores.add(66);
        scores.add(89);
        scores.add(79);
        scores.add(50);
        scores.add(100);

//        //错误的代码
//        //把低于80分的成绩从集中去掉
//        for (int i = 0; i < scores.size(); i++) {
//            int score = scores.get(i);
//            if(score < 80){
//                //这个分数必须删除
//                scores.remove(i);
//            }
//        }
        System.out.println(scores);

        //完美的方案之一
        //把低于80分的成绩从集中去掉
       /* for (int i = 0; i < scores.size(); i++) {
            int score = scores.get(i);
            if(score < 80){
                //这个分数必须删除
                scores.remove(i);
                i--; //删除成功后,必须退一步,这样可以保证这个位置不会改变
            }
        }


        System.out.println(scores); */

        //从后面倒着遍历并删除
        for (int i = scores.size() - 1; i >= 0; i--) {
            int score = scores.get(i);
            if(score < 80){
                scores.remove(i);
            }
        }
        System.out.println(scores);
    }
}

5.案例:集合存储自定义元素并遍历

1.定义类

package cn.vqqc.arraylist;

public class Movie {
    private String name;
    private double score;
    private String actor;

    public Movie() {
    }

    public Movie(String name, double score, String actor) {
        this.name = name;
        this.score = score;
        this.actor = actor;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getScore() {
        return score;
    }

    public void setScore(double score) {
        this.score = score;
    }

    public String getActor() {
        return actor;
    }

    public void setActor(String actor) {
        this.actor = actor;
    }
}

2.案例

package cn.vqqc.arraylist;

import java.util.ArrayList;

/**
 案例:集合存储自定义元素并遍历。
 需求:定义电影类(名称,分值,演员),创建3个电影对象,代表三部影片,存入集合中并遍历。
 《肖生克的救赎》, 9.7 , 罗宾斯
 《霸王别姬》, 9.6 , 张国荣、张丰毅
 《阿甘正传》, 9.5 , 汤姆.汉克斯
 */
public class ArrayListTest5{
    public static void main(String[] args) {
        // 1、定义一个电影类:Movie
        // 2、定义一个ArrayList集合存储这些影片对象。
        ArrayList<Movie> movies = new ArrayList<>();

        // 3、创建影片对象封装电影数据,把对象加入到集合中去。
//        Movie m1 = new Movie("《肖生克的救赎》", 9.7 , "罗宾斯");
//        movies.add(m1);
        movies.add(new Movie("《肖生克的救赎》", 9.7 , "罗宾斯"));
        movies.add(new Movie("《霸王别姬》", 9.6 , "张国荣、张丰毅"));
        movies.add(new Movie("《阿甘正传》", 9.5 , "汤姆.汉克斯"));

        System.out.println(movies);

        // 4、遍历集合中的影片对象并展示出来
        for (int i = 0; i < movies.size(); i++) {
            Movie movie = movies.get(i);
            System.out.println("片名:" + movie.getName());
            System.out.println("评分:" + movie.getScore());
            System.out.println("主演:" + movie.getActor());
        }
    }
}

6.案例:学生信息系统:展示数据,并按照学号完成搜索

1.定义类

package cn.vqqc.arraylist;

public class Student {
    private String studyId;
    private String name;

    public Student() {
    }

    public Student(String studyId, String name, int age, String className) {
        this.studyId = studyId;
        this.name = name;
        this.age = age;
        this.className = className;
    }

    public String getStudyId() {
        return studyId;
    }

    public void setStudyId(String studyId) {
        this.studyId = studyId;
    }

    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 String getClassName() {
        return className;
    }

    public void setClassName(String className) {
        this.className = className;
    }

    private int age;
    private String className;
}

2.案例

package cn.vqqc.arraylist;

import java.util.ArrayList;
import java.util.Scanner;

/**
 案例:学生信息系统:展示数据,并按照学号完成搜索
 学生类信息(学号,姓名,性别,班级)
 测试数据:
 "20180302","叶孤城",23,"护理一班"
 "20180303","东方不败",23,"推拿二班"
 "20180304","西门吹雪",26,"中药学四班"
 "20180305","梅超风",26,"神经科2班"
 */
public class ArrayListTest6 {
    public static void main(String[] args) {
        // 1、定义一个学生类,后期用于创建对象封装学生数据
        // 2、定义一个集合对象用于装学生对象
        ArrayList<Student> students = new ArrayList<>();
        students.add(new Student("20180302","叶孤城",23,"护理一班"));
        students.add(new Student("20180303","东方不败",23,"推拿二班"));
        students.add(new Student( "20180304","西门吹雪",26,"中药学四班"));
        students.add(new Student( "20180305","梅超风",26,"神经科2班"));
        System.out.println("学号\t\t\t名称\t\t年龄\t班级");

        // 3、遍历集合中的每个学生对象并展示其数据
        for (int i = 0; i < students.size(); i++) {
            Student s = students.get(i);
            System.out.println(s.getStudyId() +"\t\t" + s.getName()+"\t\t"
                    + s.getAge() +"\t\t" + s.getClassName());
        }

        // 4、让用户不断的输入学号,可以搜索出该学生对象信息并展示出来(独立成方法)
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("请您输入要查询的学生的学号:");
            String id = sc.next();
            Student s = getStudentByStudyId(students, id);
            // 判断学号是否存在
            if(s == null){
                System.out.println("查无此人!");
            }else {
                // 找到了该学生对象了,信息如下
                System.out.println(s.getStudyId() +"\t\t" + s.getName()+"\t\t"
                        + s.getAge() +"\t\t" + s.getClassName());
            }
        }
    }

    /**
     根据学号,去集合中找出学生对象并返回。
     * @param students
     * @param studyId
     * @return
     */
    public static Student getStudentByStudyId(ArrayList<Student> students, String studyId){
        for (int i = 0; i < students.size(); i++) {
            Student s = students.get(i);
            if(s.getStudyId().equals(studyId)){
                return s;
            }
        }
        return null; // 查无此学号!
    }
}

视频总结

1.String、ArrayList课程安排

https://www.bilibili.com/video/BV1Cv411372m/?p=78

2.String概述、对象创建的原理

https://www.bilibili.com/video/BV1Cv411372m/?p=79

3.String类常见面试题

https://www.bilibili.com/video/BV1Cv411372m/?p=80

4.String类常用API

https://www.bilibili.com/video/BV1Cv411372m/?p=81

5.String案例:验证码、登录、隐私号码

https://www.bilibili.com/video/BV1Cv411372m/?p=82

6.集合概述、ArrayList的使用

https://www.bilibili.com/video/BV1Cv411372m/?p=83

7.集合案例、ArrayList遍历删除、存对象、搜索

https://www.bilibili.com/video/BV1Cv411372m/?p=84

8.总结:常用API(String、ArrayList使用)

https://www.bilibili.com/video/BV1Cv411372m/?p=85

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容