不是有个public synchronized StringBuffer delete(int start, int end) 方法么
用StringBuffer.delete(int,int)方法
哦对了,用这个可以sb.setLength(0);
作为实参,引用是绝对不能改变的。 如果stringBuffer = new StringBuffer("");的话,引用就改变了。
stringBuffer.delete(0,stringBuffer.length());
看了一下jdk srcStringBuffer类内部维护一个 char[] valuesetLength(0) 被调用后本质上执行count = 0; // 长度计数器 是 int length() 的返回值// If newLength is zero, assume the StringBuffer is being // stripped for reuse; Make new buffer of default size value = new char[16]; shared = false;u see,it makes new buffer with default size 16 for reuse.
StringBuffer bf = new StringBuffer(); bf.delete(0,bf.length()); 或 bf.replace(0,bf.length(),"");
楼上的根本没有看懂我的问题。
如果stringBuffer = new StringBuffer("");的话,引用就改变了。
// stripped for reuse; Make new buffer of default size
value = new char[16];
shared = false;u see,it makes new buffer with default size 16 for reuse.
StringBuffer bf = new StringBuffer(); bf.delete(0,bf.length());
或
bf.replace(0,bf.length(),"");