一、概述
1.字符串与任意数据类型相加,都是拼接
2.字符串不可以改变,它的值一旦创建不能更改,如果再赋值,其实是创建了一个新的字符串
3.String是Java中的一个类,字符串的值就是这个类的对象
4.创建的两种方式:
(1)直接赋值:String s1 = "abc"; String s2 = "abc";
当string池中已经有了"abc",不会创建新的,直接复用 (节省内存空间)
(2)new方法:
①空参构造:可以获取一个空白的字符串对象(用的少)
②传递一个字符串,根据传递字符串的内容再创建一个新的字符串对象(少)
③传递一个字符数组,根据传递的字符数组再创建一个新的字符串对象
应用场景: //需求:我要修改字符串的内容 abc Qbc
④传递字节数组,根据传递的字节数组再创建一个新的字符串对象
应用场景: 以后在网络当中传输的数据其实都是字节信息, 我们一般要把字节信息进行转换,转成字符串,此时就要用到这个构造了
5. == 比较的是什么?
(1)基本数据类型:比较的是实际的数值
(2)引用数据类型:比较的是地址值
二、字符串的一些操作
1.字符串比较:①equals ②equalsIgnoreCase(忽略大小写)
2.字符串的遍历:charAt(int index) 索引从0开始
3.字符串的截取:substring(int beginIndex,int endIndex) 包左不包右
4.替换:replace(旧值,新值)
三、StringBuilder
1. 可看做一个容器,创建之后里面的内容是可以改变的(节省空间)
2. Java对其进行了特殊处理,输出的不是地址值,是属性值
3. 创建时,默认容量为16
16-34时:容量为34 (扩容 34 = 16 * 2 + 2)
> 34时:容量等于字符串实际长度
4. 两个属性 sb.capacity() sb.length()
3. 应用场景:1.拼接字符串 2.反转字符串
4. 常见方法:
append:添加
reverse:反转
length:获取字符串长度
toString:变回字符串类型
四、StringJoiner
1. 用来高效地拼接字符串
2. 可看做一个容器,创建之后里面的内容是可以改变的(提高操作效率)
3. 一个参数:StringJoiner(间隔符号)
三个参数:StringJoiner(间隔符号,开始符号,结束符号)
注:
StringBuilder、StringJoiner创建的对象,最终都要转回String对象再输出 ( toString)