字符串和ArrayList集合的简单介绍

字符串和ArrayList集合的简单介绍

字符串

  • 什么是字符串?
  • 字符串是双引号包裹起来的字面量,如"java"、"我爱中国"、"123"等等

字符串的特点

  1. 只要用双引号(“”)括起来的字面量就是字符串对象
  2. 字符串是不可变的
  3. 字符串可以被共享

字符串的构造方法

形式构造方法
无参String()
字节数组String(byte[] bytes)
字符数组char[] chars
字符串String str
public class Test {
    public static void main(String[] args) {
        // 无参
        String a = new String();
        // 字节数组
        byte bt[] = {1,2,3};
        String b = new String(bt);
        // 字符数组
        char ch[] = {'我','爱','中','国'};
        String c = new String(ch);
        // 字符串
        String d = new String("java");
    }
}

字符串的成员方法

  • 遍历相关方法

(1) int length() 获取字符串长度

public class Test {
    public static void main(String[] args) {
        String a = "我爱中国";
        System.out.println(a.length());
        // 输出结果为 4
    }
}

(2) char charAt(int index) 获取指定索引处的字符

public class Test {
    public static void main(String[] args) {
        String a = "我爱中国";
        char ch = a.charAt(1);
        System.out.println(ch);
        // 输出结果为 '爱'
    }
}

(3) char[] toCharArray() 把字符串转换为字符数组

public class Test {
    public static void main(String[] args) {
        String a = "我爱中国";
        char[] chars = a.toCharArray();
        System.out.println(chars);
        // 输出结果为 我爱中国
    }
}

  • 比较内容相关方法

(1) boolean equals(Object obj) 比较两个字符串内容是否相等,严格区分大小写

public class Test {
    public static void main(String[] args) {
        String a = "java";
        String b = "JAVA";
        System.out.println(a.equals(b));
        // 输出结果为 false
    }
}

(2)boolean equalsgnoreCase(String str) 在忽略大小写的情况下比较两个字符串内容是否相等

public class Test {
    public static void main(String[] args) {
        String a = "java";
        String b = "JAVA";
        System.out.println(a.equalsIgnoreCase(b));
        // 输出结果为 true
    }
}

  • 字符串截取的相关方法

(1) String substring(int beginIndex, int endIndex) 从beginIndex开始,截取到endIndex-1的位置,俗称包头不包尾

public class Test {
    public static void main(String[] args) {
        String str = "为中华崛起而读书";
        String s = str.substring(1, 3);
        System.out.println(s);
        // 输出结果为 "中华"
    }
}

(2) String substring(int beginIndex) 从beginIndex往后截取所有的内容

public class Test {
    public static void main(String[] args) {
        String str = "为中华崛起而读书";
        String s = str.substring(3);
        System.out.println(s);
        // 输出结果为 "崛起而读书"
    }
}

  • 其它方法

(1) String replace(String oldStr, newStr) 字符串的替换

public class Test {
    public static void main(String[] args) {
        String str = "我很喜欢读书,因为读书是一件美好的事情";
        String replace = str.replace("读书", "java");
        System.out.println(replace);
        // 输出结果为 "我很喜欢java,因为java是一件美好的事情"
    }
}

(2) boolean contains(String str) 判断字符串中是否包含指定内容

public class Test {
    public static void main(String[] args) {
        String str = "我爱java,java爱我";
        System.out.println(str.contains("java"));
        // 输出结果为 true
    }
}

(3) boolean startWith(String str) 判断是否以指定的内容开头

public class Test {
    public static void main(String[] args) {
        String str = "原神,启动!!";
        System.out.println(str.startsWith("原神"));
        // 输出结果为 true
    }
}

(4) String[] split(String str) 把字符串按照指定格式分割成n个字符串,并保存到一个字符串数组中

public class Test {
    public static void main(String[] args) {
        String str = "原神,启动";
        String[] split = str.split(",");
        System.out.println(Arrays.toString(split));
        // 输出结果为 [原神,启动]
    }
}


字符串注意事项

  1. 变量和字符串拼接会创建一个新的字符串变量,存在与堆内存

在这里插入图片描述

  1. 字符串之间的拼接仍然会创建一个新的字符串对象,但却存在于字符串常量池中
  2. 字符串拼接的懒惰性。如下按照代码的执行顺序,变量a已经创建了字符串"abc"并存在常量池中,但变量b用三个字母拼接了字符串,因为字符串拼接的懒惰性,三个字母拼接其实Java也会拼接成"abc",但由于变量a已经创建了一次字符串对象"abc",所以第二次拼接的时候并不会创建新的对象,而是使用常量池中的"abc"对象
public class Test {
    public static void main(String[] args) {
        String a = "abc";
        String b = "a" + "b" + "c";
        System.out.println(a == b);
        // 两个变量比较的结果为 true
    }
}



ArrayList的简单介绍

  1. ArrayList是属于集合中的一部分,它也是一个存储数据的容器,可以用来存储多个数据类型一致的数据
  2. ArrayList集合相对于数组的长度固定不变,集合的长度是可变的,相对数组来说更加的灵活
  3. 集合中只能存储引用类型的数据
  4. 集合删除元素时,需要注意元素移动的问题
  • 下面介绍ArrayList集合的遍历和常用的方法

  • 添加一个元素

(1) add(E e) 直接在集合中的末尾增加一个元素

(2) add(int index, E e) 在指定索引的位置增加一个元素

public class Test {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("java");
        list.add("JavaScript");
        System.out.println(list);// [java, JavaScript]

        list.add(1,"Python");
        System.out.println(list);// [java, Python, JavaScript]
    }
}


  • 删除一个元素

(1)remove(Object obj) 直接删除指定的的元素,如果有多个相同的元素,只会删除第一个
(2) remove(int index) 删除指定索引处的元素

public class Test {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("java");
        list.add("JavaScript");
        list.add("java");
        list.add("PHP");

        list.remove("java");
        System.out.println(list);// [JavaScript, java, PHP]

        list.remove(2);
        System.out.println(list);// [JavaScript, java]
    }
}


  • 修改一个元素

(1)set(int index, E e)修改指定索引处的元素为e

public class Test {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("java");
        list.add("JavaScript");
        list.add("java");
        list.add("PHP");

        list.set(1,"Axios");
        System.out.println(list);// [java, Axios, java, PHP]
    }
}
  • 获得一个元素

(1)E get(int index) 获取指定索引处的元素

public class Test {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("java");
        list.add("JavaScript");
        list.add("java");
        list.add("PHP");

        String s = list.get(1);
        System.out.println(s); // JavaScript
    }
}

  • 获取集合长度和遍历这个集合

(1)int size() 获取集合长度

public class Test {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("java");
        list.add("JavaScript");
        list.add("java");
        list.add("PHP");

        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
        // java JavaScript java PHP
    }
}

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值