循环后清除字符串缓冲区/构建器

如何在循环后清除Java中的字符串缓冲区,以便下一次迭代使用明确的字符串缓冲区?


一种选择是使用删除方法如下:

StringBuffer sb = new StringBuffer();
for (int n = 0; n < 10; n++) {
   sb.append("a");

   // This will clear the buffer
   sb.delete(0, sb.length());
}

另一个选项(位清理器)使用setLength(int len)

sb.setLength(0);

请参阅Javadoc了解更多信息:


重用StringBuffer最简单的方法是使用方法setLength()

public void setLength(int newLength)

你可能有这样的情况

StringBuffer sb = new StringBuffer("HelloWorld");
// after many iterations and manipulations
sb.setLength(0);
// reuse sb

你有两个选择:

可以使用:

sb.setLength(0);  // It will just discard the previous data, which will be garbage collected later.  

或使用:

sb.delete(0, sb.length());  // A bit slower as it is used to delete sub sequence.  

注意

避免在循环中声明StringBufferStringBuilder对象,否则它会在每次迭代时创建新对象。 创建对象需要系统资源和空间,同时也需要时间。 因此,长期来看,如果可能的话,避免在循环中声明它们。

链接地址: http://www.djcxy.com/p/72355.html

上一篇: Clearing a string buffer/builder after loop

下一篇: Differences between Oracle JDK and OpenJDK