String、StringBuffer、Stringbuilder 区别 以及常用方法

  是否可变 线程安全 效率 使用场景
String 不可变(存放在常量池)

线程安全

(因为存放在常量池,是不可变的只读)

最差 少量字符串操作
StringBuffer 可变(实际存储是在一个字符数组,指向这个数组的引用不可变,但是内容可变) 线程安全 效率较高(增删) 多线程操作多
StringBuilder 可变(实际存储是在一个字符数组,指向这个数组的引用不可变,但是内容可变) 线程不安全 效率最高 单线程操作多
 
 
 
 
 
 
 
 
 
 
 
1、String转StringBuffer(StringBuilder):
(1)String对象直接传入StringBuffer构造器(StringBuffer stringBuffer = new StringBuffer(str))
(2)使用StringBuffer的append方法(stringBuffer1 = stringBuffer1.append(str);)
2、StringBuffer(StringBuilder)转String:
(1)StringBuffer对象直接传入String构造器(String s1 = new String(stringBuffer3))
(2)调用StringBuffer的toString方法(String s = stringBuffer3.toString()
String常用的方法:
str.equals(str1)  比较内容是否相同,区分大小写
str.equalsIgnoreCase(str1) 忽略大小写的判断内容是否相等
str.length 获取字符的个数,字符串的长度
str.indexOf 获取字符在字符串对象中第一次出现的索引,索引从0 开始,如果找不到,返回-1
str.lastIndexOf  获取字符在字符串中最后一次出现的索引,索引从0 开始,如果找不到,返回-1
str.substring 截取指定范围的子串(传一个参数是截取参数后的,传两个截取两个之间的)
str.toUpperCase/str.toLowerCase 转换成大写/转换成小写
str.replace 替换字符串中的字符(原始的不变 返回一个新的)区别StringBuffer的方法
str.toCharArray  转换成字符数组
str.compareTo(str1) 比较两个字符串的大小
 
 
 
 
 
 
 
 
 
 
 
StringBuffer/StringBuilder常用的方法:
s.append() 追加字符串(String、StringBuffer这些对象都可)
s.delete(start,end) 删除索引为>=start && <end 处的字符
s.replace(start, end, str1) 替换索引为>=start && <end 处的字符为str1
s.indexOf(str) 查找指定的子串在字符串第一次出现的索引,如果找不到返回-1
s.insert(index,str) 在索引为index的位置插入str,原来索引为index的内容自动后移
s.length() 获取字符串长度


 
 
 
 
posted @ 2023-03-15 11:32  -Only。  阅读(72)  评论(0)    收藏  举报