Java的字符串、ArrayList
String
介绍 String 类在 java.lang 包下,该包下的内容不需要导包 String 类代表字符串,Java程序中的所有由双引号括起来的字符串都被实现为此类的实例 即Java 程序中所有双引号字符串,都是 String 类的对象 构造方法 //public String():创建一个空白字符串对象,不含有任何内容 String s = new String();//"" 空字符串 System.out.println("s="+s); //public String(char[] chs):根据字符数组的内容,来创建字符串对象 char[] chs = {'a','b','c'}; String s1 = new String(chs); System.out.println("s1="+s1); //public String(byte[] bys):根据字节数组的内容,来创建字符串对象 byte[] bys ={97,98,99}; String s2 = new String(bys); System.out.println("s2="+s2); //String s = “abc”; 直接赋值的方式创建字符串对象,内容就是abc String s3 ="abc"; System.out.println("s3="+s3);
String对象的特点
字符串不可变,它们的值在创建后不能被更改 虽然 String 的值是不可变的,但是它们可以被共享 字符串效果上相当于字符数组( char[] ),但是底层原理是字节数组( byte[] ) 解析: 1.通过 new 创建的字符串对象,每一次 new 都会申请一个内存空间,即使内容相同,但地 址值不同 2.以“”方式给出的字符串,JVM会将其存放在字符串常量池中维护。 3.且若多个“”方式给出的字符序列(顺序及大小写)相同,JVM只会建立一个String 对象。
使用 == 做比较: 基本类型:比较的是数据值是否相同 引用类型:比较的是地址值是否相同
indexOf 方法的参数是 字符,返回的是字符或者字串(看作一个整体,算一个索引)在字符串中的索引。
lastIndexOf (String s , int fromIndex);如果给定了开始的索引,那么将会从给定的指引 往前 找。
如何学习API
遍历快捷键,遍历字符串需要先获取长度,如 str.length.fori ,元素用 s.charAt(i) 获取
for (int i = 0; i < s.length(); i++) { System.out.println(s.charAt(i)); }
字符串反转,需要先定义一个新的空串
public static String reverse(String str) { //用于拼接的字符串 String s = ""; //倒着遍历字符串,并拼接 for (int i = str.length() - 1; i >= 0; i--) { //获取每个字符 char c = str.charAt(i); //拼接字符 s += c;//s=s+c; } return s; }
StringBuilder
StringBuilder 构造方法: public StringBuilder():创建一个空白可变字符串对象,不含有任何内容 public StringBuilder(String str):根据字符串的内容,来创建可变字符串对象 StringBuilder 的添加和反转方法 public StringBuilder append(任意类型):添加数据,并返回对象本身 public StringBuilder reverse():返回相反的字符序列
StringBuilder 的添加方法因为返回的是StringBuilder 对象本身,所以可以链式写代码。
StringBuilder sb = new StringBuilder();//定义了空串:"" sb.append("world").append(100).append(true);
由于String 类型的变量在拼接的时候会产生垃圾变量以及不可变的性质,所以不够高效,推荐用StringBuilder 创建字符串对象。
对字符串进行处理的时候,可以先将String对象先转换成StringBuilder对象,最后再通过toString()方法转回String类型,因为很多地方还是要求String 类型。
ArrayList集合
//public ArrayList ():创建一个空的集合对象 ArrayList<String> array = new ArrayList<>(); //输出集合中的内容 System.out.println(array);
ArrayList 只能存储引用型元素,比如String、类的对象。
直接打印ArrayList 对象,控制台会输出数组形式的集合的内容。
ArrayList 常用方法
ArrayList添加方法: public boolean add(E e):将指定的元素追加到此集合的末尾 public void add(int index,E element):在此集合中的指定位置插入指定的元素 ArrayList删除方法: public boolean remove(Object o):删除指定的元素,返回删除是否成功 public E remove(int index):删除指定索引处的元素,返回被删除的元素 ArrayList修改方法: public E set(int index,E element):修改指定索引处的元素,返回被修改的元素 ArrayList获取方法: public E get(int index):返回指定索引处的元素 public int size():返回集合中的元素的个数
注意事项
虽然集合的长度可变,但是在进行增删改查的时候也要保证集合当中数据的连续性,不能跳过性的进行操作,因为不能存放空值;要操作的数据一定要在集合中是有的,注意索引越界的问题。
遍历集合通用格式
//遍历集合,采用通用遍历格式实现 for (int i = 0; i < array.size(); i++) { Student s =array.get(i); s.show(); }