加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

.NET 4.0 New Feature - StringBuilder.Clear

发布时间:2020-12-15 07:46:35 所属栏目:Java 来源:网络整理
导读:.NET 4.0 New Feature - StringBuilder.Clear 以往在使用StringBuilder时,若要重复使用现有的StringBuilder对象,必需要将StringBuilder的内容清空,然而在StringBuilder类中并未附有直觉的方法可供直接叫用,因此我们可能需要透过StringBuilder.Remove方法

.NET 4.0 New Feature - StringBuilder.Clear


以往在使用StringBuilder时,若要重复使用现有的StringBuilder对象,必需要将StringBuilder的内容清空,然而在StringBuilder类中并未附有直觉的方法可供直接叫用,因此我们可能需要透过StringBuilder.Remove方法来清空内容。

Dim str = New StringBuilder()
...
str.Remove(0,str.Length)
...

或是透过把StringBuilder.Length设为0的方式来清除内容。

Dim str = New StringBuilder()
...
str.Length = 0
...

?

但这样的做法总是有点不直觉,撰写上也不太方便,因此在.NET 4.0中StringBuilder类多加了Clear方法可以直接叫用,该方法把StringBuilder.Length设为0的方式给包装了起来,直接叫用就可以清除掉StringBuilder中的内容。

Dim str = New StringBuilder()
...
str.Clear()
...

这边将三种方法做个测试比较,测试程序如下:

Imports System.Text

Module Module1

    Sub Main()
        Dim str As New StringBuilder
        Dim size As Integer = 100000000

        Dim sw As New Stopwatch

        ‘预先编译降低测试误差
        AppendData(str,size)
        ClearData1(str)
        ClearData2(str)
        ClearData3(str)

        ‘开始测试
        AppendData(str,size)
        Console.WriteLine("Test Remove...")
        sw.Restart()
        ClearData1(str)
        Console.WriteLine(sw.ElapsedMilliseconds)

        AppendData(str,size)
        Console.WriteLine("Test Length...")
        sw.Restart()
        ClearData2(str)
        Console.WriteLine(sw.ElapsedMilliseconds)

        AppendData(str,size)
        Console.WriteLine("Test Clear...")
        sw.Restart()
        ClearData3(str)
        Console.WriteLine(sw.ElapsedMilliseconds)
    End Sub

    Private Sub AppendData(ByVal str As StringBuilder,ByVal size As Integer)
        str.Append(New String("0",size))
    End Sub

    Private Sub ClearData1(ByVal str As StringBuilder)
        str.Remove(0,str.Length)
    End Sub

    Private Sub ClearData2(ByVal str As StringBuilder)
        str.Length = 0
    End Sub

    Private Sub ClearData3(ByVal str As StringBuilder)
        str.Clear()
    End Sub

End Module

感觉速度上是没有太大的差异,挑自己顺手的方法写就好了。

Link

  • StringBuilder.Clear 方法

原文:大专栏 ?.NET 4.0 New Feature - StringBuilder.Clear

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读