本文正在参加「Java主题月 - Java Debug笔记活动」,详情查看活动链接
如何清除或清空StringBuilder?
我在循环中使用StringBuilder,每隔x次迭代我想将其清空并以empty开头StringBuilder,但是在文档中看不到任何类似于.NET StringBuilder.Clear的方法,只是看不到delete方法过于复杂。
那么StringBuilder用Java清除a的最佳方法是什么?
高分回答:
两种工作方式:
使用stringBuilderObj.setLength(0)
分配一个新的new StringBuilder()而不是清除缓冲区。请注意,对于性能至关重要的代码路径,此方法可能比setLength基于方法的速度要慢得多(因为需要分配带有新缓冲区的新对象,因此旧对象可以使用GC等)。
高分回答:
基本上有两种选择,setLength(0)用于重置StringBuilder或在每次迭代中创建一个新的。两者都有优点和缺点,具体取决于用法。
如果您事先知道StringBuilder的预期容量,那么每次创建一个新的容量应该与设置新的长度一样快。它还将帮助垃圾收集器,因为每个StringBuilder的生存期都相对较短,并且gc为此进行了优化。
当您不知道容量时,重用相同的StringBuilder可能会更快。每次添加时超出容量时,都必须分配一个新的后备阵列,并且必须复制以前的内容。通过重复使用相同的StringBuilder,它将在某些迭代后达到所需的容量,此后将不再进行任何复制。
高分回答:
delete 不太复杂:
myStringBuilder.delete(0, myStringBuilder.length());
您也可以:
myStringBuilder.setLength(0);
文章翻译自kgs4h5t57thfb6iyuz6dqtun5y-ac4c6men2g7xr2a-stackoverflow-com.translate.goog/questions/5…
作者建议:从新new呗,或者设置长度为0
真心感谢帅逼靓女们能看到这里,如果这个文章写得还不错,觉得有点东西的话
求点赞👍 求关注❤️ 求分享👥 对8块腹肌的我来说真的 非常有用!!!
如果本篇博客有任何错误,请批评指教,不胜感激 !❤️❤️❤️❤️