常用API(String ,ArrayList)day05

常用API(String ,ArrayList)

String

构造器说明
public String()创建一个空白字符串对象,不含有任何内容
public String(String original)根据传入的字符串内容,来创建字符串对象
public String(char[ ] chs)根据字符数组的内容,来创建字符串对象
public String(byte[ ] chs)根据字节数组的内容模糊,来创建字符串对对象
在这里插入图片描述

使用构造器和直接用“”创建字符串有区别吗

  • 存储地址不同,直接用“”创建是在字符串常量池中,使用构造器创建的存储在堆内存中。(new出来的都在堆内存中)

字符串被创建后不可更改

字符串内容的比较

  • 只比较内容equals()
  • 比较地址用“==”
  • 忽略大小写的内容比较equalsIgnoreCase()

在这里插入图片描述

演示

package StringDome;

public class Tast1 {
    public static void main(String[] args) {
        String name = "改革春风吹满地";
        System.out.println("字符长度为:"+name.length());
        System.out.println("第一个字符为:"+name.charAt(0));
        //遍历字符串
        for (int i = 0; i < name.length(); i++) {
            System.out.print(name.charAt(i)+"\t");
        }
        System.out.println();
        char[] nameArr = name.toCharArray();
        // 转为字符数组
        for (char c : nameArr) {
            System.out.print(c + "\t");
        }
        System.out.println();
        //截取字符串(包前不包后,取到0-4)
        System.out.println(name.substring(0,5));
        //从第5位到末尾
        System.out.println(name.substring(5));
        //关键词替换
        System.out.println(name.replace("改革","**"));
        //判断是否包含
        System.out.println(name.contains("春风"));
        System.out.println(name.contains("春小风"));
        //判断字符串以什么字符开头
        System.out.println(name.startsWith("改革"));
        System.out.println(name.startsWith("春风"));
        //按特定字符分割字符串,返回字符串数组
        System.out.println(name.split("风"));
        String[]  nameStringSrray = name.split("风");
        for (String s : nameStringSrray) {
            System.out.print(s+"\t");
        }

    }
}

String案例

模拟登陆

package StringDome;
import java.util.Scanner;
public class caseDome1 {
    public static void main(String[] args) {
        String okLonginName = "17633922136";
        String okLonginPassword = "xiebb.2580";
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < 5; i++) {
            System.out.print("请输入您的登录账号:");
            String longinName = sc.next();
            System.out.print("请输入您的登录密码:");
            String longinPassword = sc.next();
            boolean flag =true;
            if (longinName.equals(okLonginName)) {
                if (longinPassword.equals(okLonginPassword)){
                    System.out.print("登陆成功");
                    flag = false;
                    break;
                }else {
                    System.out.println("登陆失败:您的密码错误,您还有"+(4-i)+"次机会");
                }
            }else {
                System.out.println("登陆失败:您的账号错误,您还有"+(4-i)+"次机会");
            }
            if (flag){
                System.out.println("找回密码点这里");
            }
        }
    }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6njEKJzR-1658466243184)(C:\Users\谢兵兵\AppData\Roaming\Typora\typora-user-images\image-20220630222811409.png)]

ArrayList集合

集合的特点

  • 集合的大小不固定,启动后可以动态变化,类型可以选择不固定。.
  • 集合非常适合做元素个数不确定,且进行增删操作的业务场景。
  • 集合提供了很多好用的功能,而数组功能单一。

在这里插入图片描述

ArrayList入门

package ArrayListDome;
import java.util.ArrayList;
public class Test1 {
    public static void main(String[] args) {
        //创建ArrayList对象
        ArrayList list1 = new ArrayList();
        //添加元素
        list1.add("java");
        list1.add("Mysql");
        list1.add(0.5);
        list1.add(true);
        System.out.println(list1);
        //指定位置插入元素
        list1.add(1,"python");
        System.out.println(list1);
    }
}

泛型概述

  • ArrayList:其实就是一个泛型类,可以在编译阶段约束集合对象只能操作某种数据类型。
  • 举例
    • ArrayList此集合只能操作字符串类型的数据;
    • ArrayList此集合只能操作int类型的数据;
  • 注意:ArrayList只能储存引用数据类型,不支持基本数据类型。
package ArrayListDome;
import java.util.ArrayList;
public class Test1 {
    public static void main(String[] args) {
        //创建ArrayList对象
        ArrayList<String> list1 = new ArrayList<String>();
        //添加元素
        list1.add("java");
        list1.add("Mysql");
        System.out.println(list1);
        //指定位置插入元素
        list1.add(1,"python");
        System.out.println(list1);
    }
}

ArrayList常用API

在这里插入图片描述

package ArrayListDome;
import java.util.ArrayList;
public class Test1 {
    public static void main(String[] args) {
        //创建ArrayList对象
        ArrayList<String> list1 = new ArrayList<String>();
        //添加元素
        list1.add("java");
        list1.add("Mysql");
        //指定位置插入元素
        list1.add(1,"python");
        //获取指定位置元素
        System.out.println(list1.get(1));
        //获取集合的大小
        System.out.println(list1.size());
        //集合的遍历
        for (int i = 0; i < list1.size(); i++) {
            System.out.println(list1.get(i));
        }
        //删除元素(按索引)
        String e = list1.remove(1);
        System.out.println(list1);
        System.out.println(e);
        //删除元素(按元素)只删除找到的第一个元素
        System.out.println(list1.remove("java"));;
        System.out.println(list1);
        //修改某个位置的元素(返回修改前的值)
        String e2 = list1.set(0,"PHP");
        System.out.println(e2);
        System.out.println(list1);
    }
}

案例:模仿电影信息的展示

在这里插入图片描述

package ArrayListDome;

import java.util.ArrayList;

public class Test2 {
    public static void main(String[] args) {
        ArrayList<movie> list1 = new ArrayList<movie>();
        movie m1 = new movie("长津湖",9.2,"吴京");
        movie m2 = new movie("肖申克的救赎",9.5,"罗宾.思");
        movie m3 = new movie("长津湖",9.2,"吴京");
        list1.add(m1);
        list1.add(m2);
        list1.add(m3);
        for (int i = 0; i < list1.size(); i++) {
            System.out.println((list1.get(i)).getName());
            System.out.println((list1.get(i)).getActor());
            System.out.println((list1.get(i)).getScore());
            System.out.println("==========================");
        }
    }
}

案例学生信息系统的数据搜索

在这里插入图片描述

package ArrayListDome;

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

public class Test3 {
    public static void main(String[] args) {
        ArrayList<student> students = new ArrayList<>();
        students.add(new student("2019962009","谢兵兵",22,"统计班"));
        students.add(new student("2019962006","马静丽",22,"英语班"));
        students.add(new student("20199620010","潘美月",21,"统计班"));
        System.out.println("学号\t\t\t\t姓名\t年龄\t专业");
        for (int i = 0; i < students.size(); i++) {
            student s = students.get(i);
            System.out.println(s.getId()+"\t"+s.getName()+"\t"+s.getAge()+"\t"+s.getClassName());
        }
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.print("请输入要查询的学号:");
            String input = sc.next();
            getStudentByID(students,input);
        }
    }

    /**
     *通过id返回信息
     * @param students
     * @param id
     * @return
     */
    public static void getStudentByID(ArrayList<student> students,String id){
        for (int i = 0; i < students.size(); i++) {
            student s = students.get(i);
            if (s.getId().equals(id)){
                System.out.println(s.getId()+"\t"+s.getName()+"\t"+s.getAge()+"\t"+s.getClassName());
                break;
            }else {if (i == students.size()-1){
                System.out.println("查无此人");
            }
            }
        }
    }
}

在这里插入图片描述

常用API总结

  • 什么是API:全称是应用程序接口,java自己写好的,给别人调用的。可查看API文档查看
  • String:使用“”号创建的字符串褚存在字符串常量池中,且只放一份是不可改变的类型。使用new创建的字符串褚存在堆内存中
  • ArrayList:类似于数组,是一种容器
    • 大小可变,类型不固定,功能更加强大,长度不固定,可以进行增删操作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据白白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值