java中的String类和StringBuilder类
String类
String是java提供的一个类,java中所有的字符串对象,都是该类的类型,可以直接使用任意一个字符串对象,调用String类中的方法,完成功能,且字符串对象一旦创建成功,内容不可改变!
String类的构造方法介绍
public String(): 创建一个空白字符串对象,不含有任何内容
public String(char[] chs): 根据字符数组的内容,创建字符串对象
public String(String original): 根据传入的字符串内容,来创建字符串对象
注意事项: String这个类比较特殊, 打印其对象名的时候,不会出现内存地址
创建字符串对象的途径
- 利用双引号直接创建字符串对象(推荐的方式,因为更省内存)
- 利用构造方法创建字符串对象(不推荐)
不同创建途径的区别
-
使用双引号创建的字符串对象会保存到字符串常量池中,且相同内容的字符串只会存在一份
-
使用new关键字配合构造方法创建的字符串对象,每new一次都会产生新的内存(无论字符串的内容是否一样,都会创建新的内存)
字符串拼接注意事项
-
字符串常量拼接的时候,会存在常量优化机制,在编译的时候,就会直接拼接好
-
如果是字符串变量拼接,不会存在优化机制,使用StringBuilder进行拼接,拼接1次,会产出两个对象
字符串的比较
-
== 比较引用数据类型,比较的是对象地址值
-
== 比较基本数据类型,比较的是具体的值
-
equals方法,严格比较字符串的内容区分大小写
-
equalsIgnoreCase 忽略大小写比较字符串内容
字符中其他成员方法(总结)
遍历字符串相关方法
length() 获取字符串的长度
charAt(索引) 根据指定的索引获取字符串中指定位置的某个字符
toCharArray() 将字符串的内容转成字符数组并返回
对字符串进行截取的方法
subString(起始索引,结束索引) 从指定的位置开始(包含)截取到结束索引(不包含)位置
subString(起始索引) 从指定的位置开始(包含)截取末尾
对字符串的敏感词替换
replace("被替换掉的旧值","替换后的新值") 使用新值替换旧值
对字符串的切分
split("指定被切字符串") 根据传入的字符串作为规则进行切割将切割后的内容存入字符串数组中并返回
注意事项: 在切分的时候,点"."是特殊符号,会匹配任意字符,所以如果想用点切分,需要写成 “\\.”
StringBuilder类
StringBuilder 是一个可变的字符串类,可变指的是 StringBuilder 对象中的内容是可变的
作用: 可以提升字符串的拼接效率,同时还提供了一些字符串的简单操作
StringBuilder类和String类的区别
- **String类:**内容不可变
- **StringBuilder类:**内容可变
StringBuilder类的构造方法
StringBuilder(): 创建一个空白可变字符串对象,不含有任何内容
StringBuilder(String str): 根据字符串的内容,来创建可变字符串对象
StringBuilder常用的成员方法
append(任意类型): 添加数据,并返回对象本身
reverse(): 返回相反的字符序列
length(): 返回长度
StringBuilder和String相互转换
-
StringBuilder转换为String
toString():通过 toString() 就可以实现把 StringBuilder 转换为 String
-
String转换为StringBuilder
StringBuilder(String s):通过构造方法就可以实现把 String 转换为 StringBuilder
链式编程
使用方法返回的对象继续调用方法
注意事项: 被调用方法返回的必须是一个对象