如何清除或清空StringBuilder?| Java Debug 笔记

922 阅读2分钟

本文正在参加「Java主题月 - Java Debug笔记活动」,详情查看活动链接

如何清除或清空StringBuilder?

我在循环中使用StringBuilder,每隔x次迭代我想将其清空并以empty开头StringBuilder,但是在文档中看不到任何类似于.NET StringBuilder.Clear的方法,只是看不到delete方法过于复杂。

那么StringBuilder用Java清除a的最佳方法是什么?

高分回答:

很多的知识点,真的需要写出来才会掌握!!! \color{purple}很多的知识点,真的需要写出来才会掌握!!!{~}

两种工作方式:

使用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

欢迎关注我的专栏StackOverFlow,我会筛选优质的问答,面试常考!!! \color{red}欢迎关注我的专栏StackOverFlow,我会筛选优质的问答,面试常考!!!{~}

有最新、优雅的实现方式,我也会在文末写出我对本问答的见解 \color{red}有最新、优雅的实现方式,我也会在文末写出我对本问答的见解{~}

真心感谢帅逼靓女们能看到这里,如果这个文章写得还不错,觉得有点东西的话

求点赞👍 求关注❤️ 求分享👥 对8块腹肌的我来说真的 非常有用!!!

如果本篇博客有任何错误,请批评指教,不胜感激 !❤️❤️❤️❤️