StringBuffer类的介绍
StringBuffer类位于:java.lang
StringBuilder类位于:java.lang
两者都实现了Serializable, Appendable, CharSequence接口,表明StringBuffer类的对象
是可进行附加可变的字符序列
注意:1、String与StringBuffer相比,StringBuffer的特点:
(1)StringBuffer是可变字符序列,这种可变性,指的是在原有字符序列的基础上进行
insert;append;delete等操作,会对原有字符序列的值产生直接影响
(2)StringBuffer是线程安全的且引用了缓冲机制的字符序列,其执行效率要大于String
2、String与StringBuffer间的转换:
(1)String转换为StringBuffer,借助StringBuffer的构造函数,并将一个要转换的
String作为其实参值;
(2)StringBuffer转换为String,借助StringBuffer类中的toString()方法
3、StringBuffer与StringBuilder:
(1)都是可变字符序列,但StringBuilder类提供一个与 StringBuffer 兼容的 API,
但不保证同步,且被设计用作 StringBuffer 的一个简易替换
(2)两者具有相似的方法,方法的执行效果基本一致
StringBuffer类中的常用方法:
(1) append() 在调用该方法的可变字符序列的基础上,将基本类型的变量值或String/StringBuffer/
Object对象的值,附加到原有可变字符序列的尾部
注意:该方法对基本类型和引用类型都提供了重载的方法,请详细查看对应的API
(参见:cn.com.stringbuffer.append)
(2) delete(int start,int end) 与deleteCharAt(int index)
相同点: 两个方法都是用于,从调用该方法的可变字符序列中删除字符
不同点: delete在删除时,需要制定起始位置(start)和结束位置(end),并将该范围内的字符删除掉;
deleteCharAt在删除时,只需要指定要被删除的字符所在下标位置,删除单个字符
注意:使用delete删除某范围内的字符的时候,包含起始位置,但不包含结束位置
(参见: cn.com.stringbuffer.delete)
(3) insert() 在调用该方法的可变字符序列的基础上,将基本类型的变量值或String/StringBuffer/
Object对象的值,以指定位置为起始点,插入到原有可变字符序列中
注意:1)insert()方法中的第一个参数offset为插入点的起始位置。该方法对基本类型和引用类型都提供
了重载的方法,请详细查看对应的API;
2)如果,在进行插入数据操作时,被插入的可变字符序列为空,那么,只能从其0下标插入;如果,不为
空,那么,插入点不能超过可变字符序列的长度
标注: (1)除了以上列举的3个方法是StringBuffer类特有的意外,其他没有列举的方法,基本上与String类
中的相似,请自行阅读其API文档,并写测试代码,验证与String类中的有没有什么区别
(2)对于StringBuilder类,请自行阅读其API文档,并写测试代码