String
创建的String类字符串其长度是固定的,虽然使用“+”可以达到附加新字符或字符串的目的,但会产生一个新的String实例,会在内存中创建新的字符串对象。
StringBuffer、StringBuilder
两个类都是可变的字符序列的类,大大提高了频繁增加字符串的效率。StringBuffer支持并发操作,线性安全;StringBuilder不支持并发操作,非线性安全,但在单线程中的性能比StringBuffer高。
常用方法
修改指定字符
public void setCharAt(int index,char ch) 将给定索引处的字符修改为ch;
插入字符串
insert(int offset,String str) 将字符串插入此字符序列中
字符串反序
reverse() 将字符串反序输出
删除子字符串
delete(int start,int end) 移除此序列的子字符串中的字符。注:左闭右开
追加字符串
append()
三者之间的转换
String<-->StringBuffer/StringBuilder: String str=“String”; StringBuffer/StringBuilder sb=new StringBuffer/StringBuilder(str);
str=sb.toString();
StringBuffer<-->StringBuilder
StringBuffer sbf=new StringBuffer(sbr.toString()); StringBuilder sbr=new StringBuilder(sbf.toString());
适用场景
(1)操作少、数据少,用String。
(2)单线程、操作多、数据多,用StringBuilder。
(3)多线程、操作多、数据多,用StringBuffer。
网友评论