StringBuffer是Java中常用的一个类,它可以替换字符串,并且支持字符串的反复拼接,但是对于清空StringBuffer,它有几种方法可以实现。
1、使用setLength()方法
public void setLength(int newLength) { if (newLength < 0) { throw new StringIndexOutOfBoundsException(newLength); } if (newLength < count) { count = newLength; } if (newLength > value.length) { expandCapacity(newLength); } }
setLength()方法可以将StringBuffer的长度设置为0,从而实现清空StringBuffer的功能,它的实现原理是将StringBuffer的count属性设置为0,从而达到清空StringBuffer的目的。
2、使用delete()方法
public StringBuffer delete(int start, int end) { if (start < 0) { throw new StringIndexOutOfBoundsException(start); } if (end > count) { end = count; } if (start > end) { throw new StringIndexOutOfBoundsException(); } int len = end - start; if (len > 0) { System.arraycopy(value, start+len, value, start, count-end); count -= len; } return this; }
delete()方法可以将StringBuffer的指定位置的字符删除,如果将start设置为0,end设置为StringBuffer的长度,就可以将StringBuffer清空。它的实现原理是使用System.arraycopy()方法将StringBuffer指定位置的字符复制到指定位置,将StringBuffer的count属性减少指定的长度,从而达到清空StringBuffer的目的。
3、使用replace()方法
public StringBuffer replace(int start, int end, String str) { if (start < 0) { throw new StringIndexOutOfBoundsException(start); } if (start > count) { throw new StringIndexOutOfBoundsException("start > length()"); } if (start > end) { throw new StringIndexOutOfBoundsException("start > end"); } int len = str.length(); int newCount = count + len - (end - start); if (newCount > value.length) { expandCapacity(newCount); } System.arraycopy(value, end, value, start + len, count - end); str.getChars(value, start); count = newCount; return this; }
replace()方法可以将StringBuffer的指定位置的字符替换为指定的字符串,如果将start设置为0,end设置为StringBuffer的长度,将str设置为空字符串,就可以将StringBuffer清空。它的实现原理是使用System.arraycopy()方法将StringBuffer指定位置的字符复制到指定位置,将StringBuffer的count属性减少指定的长度,从而达到清空StringBuffer的目的。
4、使用setCharAt()方法
public void setCharAt(int index, char ch) { if ((index < 0) || (index >= count)) { throw new StringIndexOutOfBoundsException(index); } value[index] = ch; }
setCharAt()方法可以将StringBuffer指定位置的字符替换为指定的字符,如果将StringBuffer的每个字符都替换为空字符,就可以将StringBuffer清空。它的实现原理是使用setCharAt()方法将StringBuffer指定位置的字符替换为空字符,从而达到清空StringBuffer的目的。
以上就是StringBuffer清空的几种方法,使用这几种方法可以轻松实现StringBuffer的清空操作,非常方便。