如何清除或清空 StringBuilder?
2022-08-31 04:07:46
我在循环中使用了一个StringBuilder,每次x次迭代我都想清空它并以空开始,但我看不到任何类似于.NET StringBuilder的方法。在文档中清除,只是删除方法似乎过于复杂。StringBuilder
那么,在 Java 中清理 a 的最佳方法是什么呢?StringBuilder
我在循环中使用了一个StringBuilder,每次x次迭代我都想清空它并以空开始,但我看不到任何类似于.NET StringBuilder的方法。在文档中清除,只是删除方法似乎过于复杂。StringBuilder
那么,在 Java 中清理 a 的最佳方法是什么呢?StringBuilder
两种工作方式:
stringBuilderObj.setLength(0)
new StringBuilder()
setLength
基本上有两种选择,用于重置StringBuilder或在每次迭代中创建新一个。根据使用情况,两者都有优点和缺点。setLength(0)
如果您事先知道 StringBuilder 的预期容量,则每次创建一个新长度应该与设置新长度一样快。它还将有助于垃圾回收器,因为每个StringBuilder的寿命相对较短,并且gc已针对此进行了优化。
当您不知道容量时,重用相同的StringBuilder可能会更快。每次追加时超过容量时,都必须分配一个新的后备阵列,并且必须复制以前的内容。通过重用相同的StringBuilder,它将在一些迭代后达到所需的容量,并且此后不会有任何复制。