StringBuilder.Replace Method (String, String, Int32, Int32)

Replaces, within a substring of this instance, all occurrences of a specified string with another specified string.

Namespace:  System.Text
Assembly:  mscorlib (in mscorlib.dll)

Public Function Replace ( _
	oldValue As String, _
	newValue As String, _
	startIndex As Integer, _
	count As Integer _
) As StringBuilder


Type: System.String
The string to replace.
Type: System.String
The string that replaces oldValue, or Nothing.
Type: System.Int32
The position in this instance where the substring begins.
Type: System.Int32
The length of the substring.

Return Value

Type: System.Text.StringBuilder
A reference to this instance with all instances of oldValue replaced by newValue in the range from startIndex to startIndex + count - 1.


oldValue is Nothing.


The length of oldvalue is zero.


startIndex or count is less than zero.


startIndex plus count indicates a character position not within this instance.


Enlarging the value of this instance would exceed its maximum capacity.

The strings to replace are checked on an ordinal basis; that is, the replacement is not culture-aware. If newValue is Nothing, all occurrences of oldValue are removed. This method is case-sensitive.

Platform Notes

Silverlight for Windows Phone Silverlight for Windows Phone

 If you call this method when a null character exists in the string, the new string will be truncated at the first null character.

The following code example demonstrates the Replace method.

Imports System.Text

Class Example
   Public Shared Sub Demo(ByVal outputBlock As System.Windows.Controls.TextBlock)
      '                    0----+----1----+----2----+----3----+----4---
      '                    01234567890123456789012345678901234567890123
      Dim str As String = "The quick br!wn d#g jumps #ver the lazy cat."
      Dim sb As New StringBuilder(str)

      outputBlock.Text &= vbCrLf
      outputBlock.Text &= "StringBuilder.Replace method" & vbCrLf
      outputBlock.Text &= vbCrLf

      outputBlock.Text &= "Original value:" & vbCrLf
      Show(outputBlock, sb)

      sb.Replace("#"c, "!"c, 15, 29)   ' Some '#' -> '!'
      Show(outputBlock, sb)
      sb.Replace("!"c, "o"c)           ' All '!' -> 'o'
      Show(outputBlock, sb)
      sb.Replace("cat", "dog")         ' All "cat" -> "dog"
      Show(outputBlock, sb)
      sb.Replace("dog", "fox", 15, 20) ' Some "dog" -> "fox"
      outputBlock.Text &= "Final value:" & vbCrLf
      Show(outputBlock, sb)
   End Sub 'Main

   Public Shared Sub Show(ByVal outputBlock As System.Windows.Controls.TextBlock, ByVal sbs As StringBuilder)
      Dim rule1 As String = "0----+----1----+----2----+----3----+----4---"
      Dim rule2 As String = "01234567890123456789012345678901234567890123"

      outputBlock.Text &= rule1 & vbCrLf
      outputBlock.Text &= rule2 & vbCrLf
      outputBlock.Text += String.Format("{0}", sbs.ToString()) & vbCrLf
      outputBlock.Text &= vbCrLf
   End Sub 'Show
End Class 'Sample
'This example produces the following results:
'StringBuilder.Replace method
'Original value:
'The quick br!wn d#g jumps #ver the lazy cat.
'The quick br!wn d!g jumps !ver the lazy cat.
'The quick brown dog jumps over the lazy cat.
'The quick brown dog jumps over the lazy dog.
'Final value:
'The quick brown fox jumps over the lazy dog.


Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Xbox 360, Windows Phone OS 7.0

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Community Additions