String类和ArrayList类API

目录

一.API概述

二.String类

1.什么是String

2.String创建对象

3. String类的常用方法

4. String的注意事项

 三.ArrayList类

1. ArrayList快速入门

2. ArrayList常用方法

3. ArrayList应用案例


一.API概述

API(全称是Application Program Interface 应用程序接口),说人话就是:别人写好的一些程序,给咱们程序员直接拿去调用。

  1. 比如String类,表示字符串,提供的方法全都是对字符串操作的。

  2. 比如ArrayList类,表示一个容器,提供的方法都是对容器中的数据进行操作的。

像这样的类还有很多,Java把这些类是干什么用的、类中的每一个方法是什么含义,编写成了文档,我们把这个文档称之为API文档。  

二.String类

1.什么是String

String代表字符串对象, 可以用来封装字符串数据, 并提供了很多操作字符串的方法

字符串的应用场景是非常多的

2.String创建对象

在API查看String类的对象是如何创建的.

 意思就是:所有Java的字符串字面值,都是字符串对象。

  •  所以创建String对象的第一种方式:

String s1 = "abc";        //这里abc就是一个字符串对象, 用s1变量接收.

String s2 = "白龙马";

  • 创建String对象的第二种方式,就是利用String类的构造方法创建String类的对象。

 执行构造方法需要用到new关键字。new String(参数)就是在执行String类的构造方法。

我们演示两种常用:

// 1、直接双引号得到字符串对象,封装字符串数据
String name = "白龙马";
System.out.println(name);

// 2、new String创建字符串对象,并调用构造器初始化字符串
String s1 = new String();
System.out.println(s1);

String s2 = new String("星空");
System.out.println(s2);

3. String类的常用方法

网上列出来的String类的方法有:

 下面我们就把String类中的方法,按照方法的调用规则,先快速过一遍。(注意:第一次调用API方法,都是看着API方法来调用用的,不是背的)

public class Test1 {
    public static void main(String[] args) {
        //目标:快速熟悉String提供的处理字符串的常用方法。
        String s = "白龙马";
        // 1、获取字符串的长度
        System.out.println(s.length());

        // 2、提取字符串中某个索引位置处的字符
        char c = s.charAt(1);
        System.out.println(c);

        // 字符串的遍历
        for (int i = 0; i < s.length(); i++) {
            // i = 0 1 2 3 4 5
            char ch = s.charAt(i);
            System.out.println(ch);
        }

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

        // 3、把字符串转换成字符数组,再进行遍历
        char[] chars = s.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            System.out.println(chars[i]);
        }

        // 4、判断字符串内容,内容一样就返回true
        String s1 = new String("白龙马");
        String s2 = new String("白龙马");
        System.out.println(s1 == s2); // false
        System.out.println(s1.equals(s2)); // true

        // 5、忽略大小写比较字符串内容
        String c1 = "123abc";
        String c2 = "123abcd";
        System.out.println(c1.equals(c2)); // false
        System.out.println(c1.equalsIgnoreCase(c2)); // true

        // 6、截取字符串内容 (包前不包后的)
        String s3 = "明天会更好吗?";
        String str1 = s3.substring(0, 3);
        System.out.println(str1);

        // 7、从当前索引位置一直截取到字符串的末尾
        String str2 = s3.substring(2);
        System.out.println(str2);

        // 8、把字符串中的某个内容替换成新内容,并返回新的字符串对象给我们
        String info = "明天要早起,真的好烦呀!!!";
        String str3 = info.replace("好烦", "好开心");
        System.out.println(str3);

        // 9、判断字符串中是否包含某个关键字
        String info2 = "我爱说唱,可是他好像不爱我!!!";
        System.out.println(info2.contains("说唱"));  //true

        // 10、判断字符串是否以某个字符串开头。
        String str4 = "张子豪是个很厉害的说唱歌手";
        System.out.println(str4.startsWith("张"));   //true
        System.out.println(str4.startsWith("张子豪")); //true


        // 11、把字符串按照某个指定内容分割成多个字符串,放到一个字符串数组中返回给我们
        String str5 = "珍珠,花,太阳,雨,你";
        String[] names = str5.split(",");
        for (int i = 0; i < names.length; i++) {
            System.out.println(names[i]);
        }
    }
}

4. String的注意事项

  1. String对象的内容不可改变,被称为不可变字符串对象.
  2. 只要以"..."方式写出的字符串对象,会存储到字符串常量池,并且相同内容的字符串只会存储一份.
  3. 但通过new方式创建 字符串对象, 每new一次都会产生一个新的对象,放在堆内存中.

第一点:

有人会提出疑问字符串不是改变了吗?为什么说是不可变的;

其实底层原理是 :  在这个过程中在堆内存中创建了两块空间 , 第一块空间存"白" , 第二块空间存"白龙马" , 只是把空间地址赋给了name , 原来的"白"没有变量记录了. 所以说是不可变的.

第二点 :

第三点 :

 三.ArrayList类

1. ArrayList快速入门

 ArrayList表示一种集合,它是一个容器,用来装数据的,类似于数组 .

数组一旦创建大小不变,比如创建一个长度为4的数组,就只能存储4个元素,想要存储第5个元素就不行。而集合是大小可变的,想要存储几个元素就存储几个元素,在实际工作中用得更多。

2. ArrayList常用方法

  • 第一步:创建ArrayList容器对象。一般使用空参数构造方法,如下图所示:

  • 第二步:调用ArrayList类的常用方法对容器中的数据进行操作。常用方法如下:

 下面我们就把ArrayList集合中的方法,按照方法的调用规则,先快速过一遍。(注意:第一次调用API方法,都是看着API方法来调用用的,不是背的)

/**
目标:掌握如何创建ArrayList集合的对象,并熟悉ArrayList提供的常用方法。
 */
public class Test1 {
    public static void main(String[] args) {
        // 1、创建一个ArrayList的集合对象
        //<String>这个东西是泛型,用来确定集合类型,以后再说
        ArrayList<String> list = new ArrayList<>();

        list.add("白龙马");
        list.add("白龙马");
        list.add("张子豪");
        System.out.println(list);

        // 2、往集合中的某个索引位置处添加一个数据
        list.add(0, "法老");
        System.out.println(list);

        // 3、根据索引获取集合中某个索引位置处的值
        String s = list.get(1);
        System.out.println(s);

        // 4、获取集合的大小(返回集合中存储的元素个数)
        System.out.println(list.size());

        // 5、根据索引删除集合中的某个元素值,会返回被删除的元素值给我们
        System.out.println(list.remove(1));
        System.out.println(list);

        // 6、直接删除某个元素值,删除成功会返回true,反之
        System.out.println(list.remove("张子豪"));
        System.out.println(list);

        list.add(1, "星空");
        System.out.println(list);

        // 默认删除的是第一次出现的这个白龙马的数据的
        System.out.println(list.remove("白龙马"));
        System.out.println(list);

        // 7、修改某个索引位置处的数据,修改后会返回原来的值给我们
        System.out.println(list.set(1, "美女"));
        System.out.println(list);
    }
}

3. ArrayList应用案例

分析:

1.用户可以选购多个商品,可以创建一个ArrayList集合,存储这些商品
2.按照需求,如果用户选择了"枸杞"批量删除,应该删除包含"枸杞"的所有元素
    1)这时应该遍历集合中每一个String类型的元素
    2)使用String类的方法contains判断字符串中是否包含"枸杞"
    3)包含就把元素删除
3.输出集合中的元素,看是否包含"枸杞"的元素全部删除

代码:

public class ArrayListTest2 {
    public static void main(String[] args) {
        // 1、创建一个ArrayList集合对象
        ArrayList<String> list = new ArrayList<>();
        list.add("枸杞");
        list.add("说唱入门");
        list.add("宁夏枸杞");
        list.add("黑枸杞");
        list.add("人字拖");
        list.add("特级枸杞");
        list.add("枸杞子");
        System.out.println(list);
        //运行结果如下: [枸杞, 说唱入门, 宁夏枸杞, 黑枸杞, 人字拖, 特级枸杞, 枸杞子]
       
        // 2、开始完成需求:从集合中找出包含枸杞的数据并删除它
        for (int i = 0; i < list.size(); i++) {
            // i = 0 1 2 3 4 5
            // 取出当前遍历到的数据
            String ele = list.get(i);
            // 判断这个数据中包含枸杞
            if(ele.contains("枸杞")){
                // 直接从集合中删除该数据
                list.remove(ele);
                i--;  //关键点,删除元素之后,后面的元素会往前顺延,所以要i--再次判断这个索引位置
            }
        }
        System.out.println(list);
        //删除后结果如下:[说唱入门, 人字拖]
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序一定有bug

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

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

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

打赏作者

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

抵扣说明:

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

余额充值