本帖最后由 郑文博 于 2012-6-26 13:56 编辑
字符缓冲区删除操作举例:- /*
- StringBuffer是字符串缓冲区。
- 是一个容器。
- 特点:
- 1,长度是可变化的。
- 2,可以直接操作多个数据类型。
- 3,最终会通过toString方法变成字符串。
- 删除:
- StringBuffer delete(start,end):删除缓冲区中的数据,包含start,不包含end。
- StringBuffer deleteCharAt(index):删除指定位置的字符。
- */
- class StringBufferDemo
- {
- public static void main(String[] args)
- {
- method_del();
- }
- public static void method_del()
- {
- StringBuffer sb = new StringBuffer("abcde");
-
- //sb.delete(1,3);
- //sb.delete(0,sb.length());//清空缓冲区。
- sop(sb.toString());
- }
- public static void sop(String str)
- {
- System.out.println(str);
- }
复制代码 第26行清空缓冲区的操作为什么不是sb.length()+1呢?
由于看jdk注释中delete方法中参数说明是:start - The beginning index,inclusive.
end - The ending index,exclusive.//也就是大家常说的“包含头不包含尾”。
既然如此这要想清空缓冲区势必是要把所有字符删掉,用sb.length()应该会保留最后以为才对啊。为什么运行结果和我想的不同?如果我对“包含头不包含尾”理解有误,也请大家给与帮助理解。
|