VB.Net/Language Basics/StringBuilder
Содержание
- 1 Append String to StringBuilder
 - 2 Demonstrating StringBuilder class constructors
 - 3 Insert and Remove of the StringBuilder class
 - 4 StringBuilder Append methods
 - 5 StringBuilder: Char and Replace
 - 6 StringBuilder Length and Capacity
 - 7 StringBuilder method AppendFormat
 - 8 StringBuilder Performance Test
 - 9 StringBuilder Replace method
 - 10 Use StringBuilder for fast processing strings
 - 11 Use StringBuilder Indexer
 
Append String to StringBuilder
Imports System
Imports System.Text 
Public Class MainClass
    Shared Sub Main(ByVal args As String())
             Dim s1 As String = "One,Two,Three"
             Const Space As Char = " "c
             Const Comma As Char = ","c
             Dim delimiters( ) As Char = {Space, Comma}
             Dim output As New StringBuilder( )
             Dim ctr As Integer = 0
             Dim resultArray As String( ) = s1.Split(delimiters)
             Dim subString As String
             For Each subString In resultArray
                 ctr = ctr + 1
                 output.AppendFormat("{0} : {1}" & _
                    Environment.NewLine, ctr, subString)
             Next subString
             Console.WriteLine(output)
    End Sub
End Class
Demonstrating StringBuilder class constructors
Imports System
Imports System.Text
Public Class MainClass
   Shared Sub Main()
      Dim buffer1, buffer2, buffer3 As StringBuilder
      Dim quotes As Char = ChrW(34)
      buffer1 = New StringBuilder()
      buffer2 = New StringBuilder(10)
      buffer3 = New StringBuilder("hello")
      Console.WriteLine("buffer1 = " & quotes & buffer1.ToString() & _
         quotes)
      Console.WriteLine("buffer2 = " & quotes & _
         buffer2.ToString() & quotes)
      Console.WriteLine("buffer3 = " & quotes & _
         buffer3.ToString() & quotes)
   End Sub " Main
End Class
Insert and Remove of the StringBuilder class
Imports System
Imports System.Text
Public Class MainClass
   Shared Sub Main()
      Dim objectValue As Object = "hello"
      Dim stringValue As String = "good bye"
      Dim characterArray As Char() = {"a"c, "b"c, "c"c, _
         "d"c, "e"c, "f"c}
      Dim booleanValue As Boolean = True
      Dim characterValue As Char = "K"c
      Dim integerValue As Integer = 7
      Dim longValue As Long = 1123456
      Dim singleValue As Single = 2234.4325
      Dim doubleValue As Double = 33.3
      Dim buffer As StringBuilder = New StringBuilder()
      " insert values into buffer
      buffer.Insert(0, objectValue)
      buffer.Insert(0, "  ")
      buffer.Insert(0, stringValue)
      buffer.Insert(0, "  ")
      buffer.Insert(0, characterArray)
      buffer.Insert(0, "  ")
      buffer.Insert(0, booleanValue)
      buffer.Insert(0, "  ")
      buffer.Insert(0, characterValue)
      buffer.Insert(0, "  ")
      buffer.Insert(0, integerValue)
      buffer.Insert(0, "  ")
      buffer.Insert(0, longValue)
      buffer.Insert(0, "  ")
      buffer.Insert(0, singleValue)
      buffer.Insert(0, "  ")
      buffer.Insert(0, doubleValue)
      buffer.Insert(0, "  ")
      Console.WriteLine("buffer after inserts:" & vbCrLf & _
         buffer.ToString() )
      buffer.Remove(12, 1)
      buffer.Remove(2, 4) 
      Console.WriteLine("buffer after Removes:" & vbCrLf & _
         buffer.ToString())
  End Sub " Main
End Class
StringBuilder Append methods
Imports System
Imports System.Text
Public Class MainClass
   Shared Sub Main()
      Dim objectValue As Object = "hello"
      Dim stringValue As String = "good bye"
      Dim characterArray As Char() = {"a"c, "b"c, "c"c, _
         "d"c, "e"c, "f"c}
      Dim booleanValue As Boolean = True
      Dim characterValue As Char = "Z"c
      Dim integerValue As Integer = 2347
      Dim longValue As Long = 100
      Dim singleValue As Single = 2.52
      Dim doubleValue As Double = 3.3
      Dim buffer As StringBuilder = New StringBuilder()
      " use method Append to append values to buffer
      buffer.Append(objectValue)
      buffer.Append("  ")
      buffer.Append(stringValue)
      buffer.Append("  ")
      buffer.Append(characterArray)
      buffer.Append("  ")
      buffer.Append(characterArray, 0, 3)
      buffer.Append("  ")
      buffer.Append(booleanValue)
      buffer.Append("  ")
      buffer.Append(characterValue)
      buffer.Append("  ")
      buffer.Append(integerValue)
      buffer.Append("  ")
      buffer.Append(longValue)
      buffer.Append("  ")
      buffer.Append(singleValue)
      buffer.Append("  ")
      buffer.Append(doubleValue)
      Console.WriteLine("buffer = " & buffer.ToString())   
  End Sub " Main
End Class
StringBuilder: Char and Replace
Imports System.Text
Module Module1
    Sub Main()
        Dim SB As StringBuilder = New StringBuilder(26)
        SB.Append("ABCDEFGHIJKLMNOPQRSTUVWYZ")
        SB.Chars(4) = "e"
        SB.Chars(0) = "a"
        SB.Replace("aBCDe", "ABCDE")
        Console.WriteLine("Ending StringBuilder: " & SB.ToString())
    End Sub
End Module
StringBuilder Length and Capacity
Imports System
Imports System.Text
Public Class MainClass
   Shared Sub Main()
      Dim buffer As StringBuilder = _
         New StringBuilder("Hello, how are you?")
      Dim output As String = "buffer = " & buffer.ToString & _
         vbCrLf & "Length = " & buffer.Length & vbCrLf & _
         "Capacity = " & buffer.Capacity
      buffer.EnsureCapacity(75)
      Console.WriteLine("New capacity = " & _
         buffer.Capacity)
      buffer.Length = 10
      
      Console.WriteLine("New Length = " & _
         buffer.Length & vbCrLf & "buffer = ")
   End Sub " Main
End Class
StringBuilder method AppendFormat
Imports System
Imports System.Text
Public Class MainClass
   Shared Sub Main()
      Dim buffer As StringBuilder = New StringBuilder()
      Dim string1, string2 As String
      string1 = "This {0} costs: {1:C}." & vbCrLf
      Dim objectArray As Object() = New Object(1) {}
      objectArray(0) = "car"
      objectArray(1) = 1234.56
      buffer.AppendFormat(string1, objectArray)
      string2 = "Number:{0:D3}. " & vbCrLf & _
         "Number right aligned with spaces:{0, 4}." & vbCrLf & _
         "Number left aligned with spaces:{0, -4}."
      buffer.AppendFormat(string2, 5)
      Console.WriteLine(buffer.ToString())
  End Sub
End Class
StringBuilder Performance Test
Imports System
Public Class MainClass
  Shared Sub Main()
        Dim i As Integer
        Dim StartTime As New DateTime()
        Dim EndTime As New DateTime()
        StartTime = DateTime.Now()
        Dim theText As New System.Text.StringBuilder()
        For i = 1 To 50000
            theText = theText.Append("A")
        Next
        EndTime = DateTime.Now
        Dim answer1, answer2 As Long
        answer1 = EndTime.Ticks() - StartTime.Ticks()
        StartTime = DateTime.Now()
        Dim aString As String = ""
        For i = 1 To 50000
            aString = aString & "A"
        Next
        EndTime = DateTime.Now
        answer2 = (EndTime.Ticks() - StartTime.Ticks()) 
        Console.WriteLine("StringBuilder was " & answer2 / answer1 & " times faster.")
  End Sub
End Class
StringBuilder Replace method
Imports System
Imports System.Text
Public Class MainClass
   Shared Sub Main()
      Dim builder1 As StringBuilder = _
         New StringBuilder("Happy Birthday Jane")
      Dim builder2 As StringBuilder = _
         New StringBuilder("good bye greg")
      Console.WriteLine("Before Replacements:" & vbCrLf & _
         builder1.ToString() & vbCrLf & builder2.ToString())
      builder1.Replace("Jane", "Greg")
      builder2.Replace("g"c, "G"c, 0, 5)
      Console.WriteLine("After Replacements:" & _
         vbCrLf & builder1.ToString() & vbCrLf & _
         builder2.ToString())
  End Sub " Main
End Class
Use StringBuilder for fast processing strings
Imports System
Imports System.Text
Public Class MainClass
    
    Shared Sub Main()
             Dim s1 As String = "One,Two,Three www . vbex . com"
             Const Space As Char = " "c
             Const Comma As Char = ","c
             Dim delimiters(  ) As Char = {Space, Comma}
             Dim ctr As Integer = 0
             Dim resultArray As String(  ) = s1.Split(delimiters)
             Dim output As New StringBuilder(  )
             Dim subString As String
             For Each subString In resultArray
                 ctr = ctr + 1
                 output.AppendFormat("{0} : {1}" & _
                    Environment.NewLine, ctr, subString)
             Next subString
             Console.WriteLine(output.ToString(  ))
            
   End Sub
End Class
Use StringBuilder Indexer
Imports System
Imports System.Text
Public Class MainClass
   Shared Sub Main()
      Dim i As Integer
      Dim buffer As StringBuilder = _
         New StringBuilder("Hello, how are you?")
      For i = 0 To buffer.Length - 1
         Console.WriteLine(buffer(i))
      Next
   End Sub " Main
End Class