Last Updated : 11 Jan, 2025
StringBuilder is used to represent a mutable string of characters. Mutable means the string which can be changed. So String objects are immutable but StringBuilder is the mutable string type. It will not create a new modified instance of the current string object but do the modifications in the existing string object. The complete functionality of StringBuilder is provided by StringBuilder class which is present in System.Text
namespace.
String vs StringBuilder Feature String StringBuilder Mutability Immutable (cannot be changed after creation) Mutable (can be changed without creating new objects) Performance Slower for frequent modifications Faster for frequent modifications Memory Usage Creates a new object for each modification Modifies the same object, reducing memory overhead Use Case Use for small or infrequently modified strings Use for large or frequently modified strings Modification Methods Modification requires creating a new string Modification is done in-place Thread Safety Strings are thread-safeNeed of the StringBuilder: As stated above that the String class objects are immutable which means that if the user will modify any string object it will result into the creation of a new string object. It makes the use of string costly. So when the user needs the repetitive operations on the string then the need of StringBuilder come into existence. It provides the optimized way to deal with the repetitive and multiple string manipulation operations.
StringBuilder
is not inherently thread-safe
Example: Demonstrating the differences between String and StringBuilder
C#
// Difference between String Vs StringBuilder
using System;
using System.Text;
using System.Collections;
class Geeks {
// Concatenates to String
public static void concat1(String s1)
{
// taking a string which
// is to be Concatenate
String st = "forGeeks";
// using String.Concat method
// you can also replace it with
// s1 = s1 + "forgeeks";
s1 = String.Concat(s1, st);
}
// Concatenates to StringBuilder
public static void concat2(StringBuilder s2)
{
// using Append method
// of StringBuilder class
s2.Append("forGeeks");
}
// Main Method
public static void Main(String[] args)
{
String s1 = "Geeks";
concat1(s1); // s1 is not changed
Console.WriteLine("Using String Class: " + s1);
StringBuilder s2 = new StringBuilder("Geeks");
concat2(s2); // s2 is changed
Console.WriteLine("Using StringBuilder Class: " + s2);
}
}
Using String Class: Geeks Using StringBuilder Class: GeeksforGeeks
Explanation:
To convert a String class object to StringBuilder class object, just pass the string object to the StringBuilder class constructor.
Example:
C#
// Conversion from String to StringBuilder.
using System;
using System.Text;
class Geeks
{
// Main Method
public static void Main(String[] args)
{
String str = "Geeks";
// conversion from String object
// to StringBuilder
StringBuilder sbl = new StringBuilder(str);
sbl.Append("ForGeeks");
Console.WriteLine(sbl);
}
}
Converting StringBuilder to String
This conversions can be performed using ToString() method.
Example:
C#
// Conversion from String to StringBuilder
using System;
using System.Text;
class Geeks
{
// Main Method
public static void Main(String[] args)
{
StringBuilder sbdr = new StringBuilder("Builder");
// conversion from StringBuilder
// object to String using ToString method
String str1 = sbdr.ToString();
Console.Write("StringBuilder object to String: ");
Console.WriteLine(str1);
}
}
StringBuilder object to String: Builder
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4