【Java语言基础】5.5 Java常用API(String、ArrayList)

Java常用API(String、ArrayList)

  • API(Application Programming Interface,应用程序编程接口)
  • Java写好的技术(功能代码),咱们可以直接调用。
  • Oracle也为Java提供的这些功能代码提供了相应的API文档(技术使用说明书)

1. String

  • String类定义的变量可以用于存储字符串,同时String类提供了很多操作字符串的功能,我们可以直接使用。

1.1 String概述

  • java.lang.String类代表字符串,String类定义的变量可以用于指向字符串对象,然后操作该字符串。
  • Java程序中的所有字符串文字(例如 “abc”)都为此类的对象。
  • String其实常被称为不可变字符串类型,它的对象在创建后不能被更改
/**
 * 目标:了解String类的特点,String类不可变原理。
 */
public class StringDemo1 {
    public static void main(String[] args) {
        String name = "张三";
        System.out.println(name); // 张三
        name += "丰";
        System.out.println(name); // 张三丰
    }
}

在这里插入图片描述
在这里插入图片描述

当String类型的值发生改变时,其对象的地址值也发生改变。

1.2 String创建对象的2种方式

  • 方式一:直接使用""定义。(推荐方式)
  • 方式二:通过String类的构造器创建对象。String str = new String();
构造器说明
public String()创建一个空白字符串对象,不含有任何内容
public String(String original)根据传入的字符串内容,来创建字符串对象
public String(char[] chs)根据字符数组的内容,来创建字符串对象
public String(byte[] chs)根据字节数组的内容,来创建字符串对象
/**
 * 目标:String类创建字符串对象的2种方式
 */
public class StringDemo2 {
    public static void main(String[] args) {
        // 方式一
        String str1 = "Hello World!";
        System.out.println(str1); // Hello World!

        // 方式二
        String str2 = new String();
        System.out.println(str2); //

        String str3 = new String("Hello World!");
        System.out.println(str3); // Hello World!

        char[] chars = {'a','b','c'};
        String str4 = new String(chars);
        System.out.println(str4); // abc
        
        byte[] bytes = {97, 98, 99, 65, 66};
        String str5 = new String(bytes);
        System.out.println(str5); // abcAB
    }
}
  • 以 " " 方式给出的字符串对象,在字符串常量池中存储,而且相同内容只会在其中存储一份。
  • 通过构造器new对象,每new一次都会产生一个新对象,放在堆内存中。

1.3 String类常用API

  1. 字符串内容比较
    使用普通方法来比较两个字符串会出现问题。
import java.util.Scanner;

public class StringDemo3 {
    public static void main(String[] args) {
        String name = "abc";

        // 输入 abc
        Scanner sc = new Scanner(System.in);
        String str = sc.next();

        System.out.println(name == str); // false
    }
}
  • 推荐使用String类提供的“equals”比较:只关系字符串的内容。
import java.util.Scanner;

public class StringDemo3 {
    public static void main(String[] args) {
        String name = "abc";

        // 输入 abc
        Scanner sc = new Scanner(System.in);
        String str = sc.next();

        System.out.println(name.equals(str)); // true
    }
}
  1. String常用API
方法名说明
public int length()返回此字符串的长度
public char charAt(int index)获取某个索引位置处的字符
public char[] toCharArray()将当前字符串转换成字符数组返回
public String substring(int beginIndex, int endIndex)根据开始和结束索引进行截取,得到新的字符串(包前不包后)
public String substring(int beginIndex)从传入的索引处截取,截取到末尾,得到新的字符串
public String replace(CharSequence target, CharSequence replacement)使用新值,将字符串中的旧值替换,得到新的字符串
public String[] split(String regex)根据传入的规则切割字符串,得到字符串数组返回

2. ArrayList

  • ArrayList代表的是集合类,集合是一种容器,与数组相似,不同的是集合的大小是不固定的
  • 通过创建ArrayList的对象表示得到一个集合容器,同时ArrayList提供了比数组更好用,更丰富的API(功能)给程序员使用。

2.1 集合概述

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

2.2 ArrayList集合

  • ArrayList是集合中的一种,它支持索引。
  • ArrayList集合的对象获取ArrayList arr = new ArrayList();
  • ArrayList集合添加元素的方法:
方法名说明
public boolean add(E e)将指定的元素追加到此集合的末尾
public void add(int index, E element)在此集合中的指定位置插入指定的元素
/**
 * 目标:创建ArrayList对象,代表集合容器,往里面添加元素。
 */
public class ArrayListDemo1 {
    public static void main(String[] args) {
        // 创建ArrayList集合
        ArrayList list = new ArrayList();

        // 添加元素
        list.add("abc");
        list.add("mysql");
        list.add("java");
        list.add(11);
        list.add(true);

        System.out.println(list); // [abc, mysql, java, 11, true]
    }
}

2.3 ArrayList对于泛型的支持

  • 泛型:ArrayList<E>:其中的E就是一个泛型类,可以在编译阶段约束集合对象只能操作某种数据类型。
    ArrayList<String>:此集合只能操作字符串类型的元素。
    ArrayList<Integer>:此集合只能操作整数类型的元素。
  • 集合中只能存储引用类型,不支持基本数据类型。

2.4 ArrayList常用API、遍历

  • ArrayList常用API:
方法名称说明
public E get(int index)返回指定索引处的元素
public int size()返回集合中的元素的个数
public E remove(int index)删除指定索引处的元素,返回被删除的元素
public boolean remove(Object o)删除指定的元素,返回删除是否成功
public E set(int index, E element)修改指定索引处的元素,返回被修改的元素
  • ArrayList的遍历:
import java.util.ArrayList;

/**
 * 目标:遍历ArrayList
 */
public class ArrayListDemo2 {
    public static void main(String[] args) {
        // 创建ArrayList集合
        ArrayList<String> list = new ArrayList<>();

        // 添加元素
        list.add("abc");
        list.add("mysql");
        list.add("java");
        list.add("mongo");
        list.add("HTML");
        list.add("Spring");

        // 遍历 1
        for (String s : list) {
            // abc mysql java mongo HTML Spring
            System.out.print(s + " ");
        }

        System.out.println(); // 换行

        // 遍历 2
        list.forEach(str -> {
            // abc mysql java mongo HTML Spring 
            System.out.print(str + " ");
        });
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

徐三木Mu

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

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

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

打赏作者

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

抵扣说明:

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

余额充值