StringBuffer StringBuilder的delete方法

使用StringBuffer的时候,经常对他的delete方法的参数的起止位置搞混,最近看了一下Api,

public StringBuffer replace(int start,
                            int end,
                            String str)
使 用给定 String 中的字符替换此序列的子字符串中的字符。该子字符串从指定的 start 处开始,一直到索引 end - 1 处的字符,如果不存在这种字符,则一直到序列尾部。先将子字符串中的字符移除,然后将指定的 String 插入 start。(如果需要,序列将延长以适应指定的字符串。)

参数:
start - 起始索引(包含)。
end - 结束索引(不包含)。
str - 将替换原有内容的字符串。

原来end 的结束索引并不包含他,类似的像substring()方法也不包含结束索引,这可能是java的一个特点吧

 

另外还注意到了StringBuffer 跟StringBuilder,这两个类具有兼容的 API(估计就是说提供的API是一样的),这两个类的区别就是,线程同步不同步的问题

StringBuffer是线程同步的,所以速度较慢,StringBuilder是线程不同步的,所以速度较快,当没有同步问题时,建议使用StringBuilder

 

 

 

 

你可能感兴趣的:(StringBuilder)