一、字符串
1.构造字符串
- 使用直接赋值获取一个字符串对象
String s1 = "abc";
- 使用new的方法获取一个字符串对象
//空参构造:获取空白的字符串对象 String s2 = new String();//带参数的构造 String s3 = new String("abc");
- 传递一个字符数组,根据数组内容再创建一个字符串对象
char [] ch = {'a','b','c'}; String s4 = new String(ch);
- 传递一个字节数组,根据数组内容再创建一个字符串对象
byte[] bytes = {97,98,99}; String s5 = new String(byte); //"abc"
注:当使用双引号赋值时 ,系统会检查该字符串在串池中是否存在;存在:复用;不存在:创建新的
2.字符串比较
public class StringDemo1 {public static void main(String[] args) {//创建两个字符串对象String s1 = new String("abc");String s2 = "Abc";// ==号比较//基本数据类型:比较数值//引用数据类型:比较地址//比较字符串对象中的内容是否相等(不忽略大小写)boolean result1 = s1.equals(s2); //flase//比较字符串对象中的内容是否相等(忽略大小写)boolean result2 = s1.equals(s2); //true}
}
3.字符串的截取及替换
4.StringBuilder
可以看成一个容器,创建之后里面的内容是可变的
-
作用:提高字符串的操作效率
-
StringBuilder构造方法
-
StringBuilder常用方法
public class StringDemo1 {public static void main(String[] args) {//创建对象StringBuilder sb = new StringBuilder("abc");//添加元素sb.append(1);sb.append(2.3);sb.append(true);//sb.append(1).append(2.3).append(true); //链式,实现结果和上述相同//反转sb.reverse();//获取长度int len = sb.length();//将StringBuilder变回字符串String str = sb.toString(); }
}
5.StringJoiner
-
概述:和StringBuilder一样可看做一个容器,创建后的内容可变
-
作用:提高字符串的操作效率 ,且编码更简洁(由于在JDK8出现,使用人较少)
-
StringJoiner 的构造方法
-
StringJoiner 的成员方法
public class StringDemo1 {public static void main(String[] args) {//创建对象StringJoiner sj = new StringJoiner(",","[","]");//添加元素sj.add("aa").add("bb").add("cc");int len = sj.length(); //15System.out.println(sj); //[aa,bb,cc]String str = sj.toString(); //[aa,bb,cc]}
}
字符串原理
二、集合的基本使用
1.集合和数组的对比
-
长度:数组长度固定,集合长度可变
-
储存类型:数组可存基本数据类型和引用数据类型;集合可存引用数据类型,存基本数据类型必须是包装类
2.ArrayList
-
ArrayList成员方法
public class StringDemo1 {public static void main(String[] args) {//创建集合ArrayList<String> list = new ArrayList<>();//添加元素list.add("aa");list.add("bb");list.add("cc");System.out.println(list); //[aa,bb,cc]//删除元素/*boolean result1 = list.remove("aa");System.out.println(result1); //trueSystem.out.println(list); //[bb,cc]*//*boolean result2 = list.remove("dd");System.out.println(result2); //集合中没有"dd",输出flaseString str = list.remove(0); //传入索引,返回删除的对应该索引的元素"aa"System.out.println(str);*///修改元素String result = list.set(1,"ddd");System.out.println(list); //[aa, ddd, cc]System.out.println(result); //bb//获取元素String str = list.get(0);System.out.println(str); //aa}
}