StringBuilder Class in Java with Examples

10 Jun, 2022
StringBuilder in Java represents a mutable sequence of characters. Since the String Class in Java creates an immutable sequence of characters, the StringBuilder class provides an alternative to String Class, as it creates a mutable sequence of characters. The function of StringBuilder is very much similar to the StringBuffer class, as both of them provide an alternative to String Class by making a mutable sequence of characters. However, the StringBuilder class differs from the StringBuffer class on the basis of synchronization. The StringBuilder class provides no guarantee of synchronization whereas the StringBuffer class does. Therefore this class is designed for use as a drop-in replacement for StringBuffer in places where the StringBuffer was being used by a single thread (as is generally the case). Where possible, it is recommended that this class be used in preference to StringBuffer as it will be faster under most implementations. Instances of StringBuilder are not safe for use by multiple threads. If such synchronization is required then it is recommended that StringBuffer be used. String Builder is not thread-safe and high in performance compared to String buffer.
The class hierarchy is as follows:  
java.lang.Object
 ↳ java.lang
    ↳ Class StringBuilder
Syntax:  
public final class StringBuilder
    extends Object
    implements Serializable, CharSequence
StringBuilder(): Constructs a string builder with no characters in it and an initial capacity of 16 characters.
StringBuilder(int capacity): Constructs a string builder with no characters in it and an initial capacity specified by the capacity argument.
StringBuilder(CharSequence seq): Constructs a string builder that contains the same characters as the specified CharSequence.
StringBuilder(String str): Constructs a string builder initialized to the contents of the specified string. 
Below is a sample program to illustrate StringBuilder in Java. 
Java
// Java Code to illustrate StringBuilder import java.util.*;import java.util.concurrent.LinkedBlockingQueue; public class GFG1 {    public static void main(String[] argv) throws Exception    {        // Create a StringBuilder object        // using StringBuilder() constructor        StringBuilder str = new StringBuilder();         str.append("GFG");         // print string        System.out.println("String = " + str.toString());         // create a StringBuilder object        // using StringBuilder(CharSequence) constructor        StringBuilder str1            = new StringBuilder("AAAABBBCCCC");         // print string        System.out.println("String1 = " + str1.toString());         // create a StringBuilder object        // using StringBuilder(capacity) constructor        StringBuilder str2 = new StringBuilder(10);         // print string        System.out.println("String2 capacity = "                           + str2.capacity());         // create a StringBuilder object        // using StringBuilder(String) constructor        StringBuilder str3            = new StringBuilder(str1.toString());         // print string        System.out.println("String3 = " + str3.toString());    }}
String = GFG
String1 = AAAABBBCCCC
String2 capacity = 10
String3 = AAAABBBCCCC
 
StringBuilder append(X x): This method appends the string representation of the X type argument to the sequence.StringBuilder appendCodePoint(int codePoint): This method appends the string representation of the codePoint argument to this sequence.int capacity(): This method returns the current capacity.char charAt(int index): This method returns the char value in this sequence at the specified index.IntStream chars(): This method returns a stream of int zero-extending the char values from this sequence.int codePointAt(int index): This method returns the character (Unicode code point) at the specified index.int codePointBefore(int index): This method returns the character (Unicode code point) before the specified index.int codePointCount(int beginIndex, int endIndex): This method returns the number of Unicode code points in the specified text range of this sequence.IntStream codePoints(): This method returns a stream of code point values from this sequence.StringBuilder delete(int start, int end): This method removes the characters in a substring of this sequence.StringBuilder deleteCharAt(int index): This method removes the char at the specified position in this sequence.void ensureCapacity(int minimumCapacity): This method ensures that the capacity is at least equal to the specified minimum.void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin): This method characters are copied from this sequence into the destination character array dst.int indexOf(): This method returns the index within this string of the first occurrence of the specified substring.StringBuilder insert(int offset, boolean b): This method inserts the string representation of the booalternatelean argument into this sequence.StringBuilder insert(): This method inserts the string representation of the char argument into this sequence.int lastIndexOf(): This method returns the index within this string of the last occurrence of the specified substring.int length(): This method returns the length (character count).int offsetByCodePoints(int index, int codePointOffset): This method returns the index within this sequence that is offset from the given index by codePointOffset code points.StringBuilder replace(int start, int end, String str): This method replaces the characters in a substring of this sequence with characters in the specified String.StringBuilder reverse(): This method causes this character sequence to be replaced by the reverse of the sequence.void setCharAt(int index, char ch): In this method, the character at the specified index is set to ch.void setLength(int newLength): This method sets the length of the character sequence.CharSequence subSequence(int start, int end): This method returns a new character sequence that is a subsequence of this sequence.String substring(): This method returns a new String that contains a subsequence of characters currently contained in this character sequence.String toString(): This method returns a string representing the data in this sequence.void trimToSize(): This method attempts to reduce storage used for the character sequence. 
StringBuilder append(X x): This method appends the string representation of the X type argument to the sequence.
StringBuilder appendCodePoint(int codePoint): This method appends the string representation of the codePoint argument to this sequence.
int capacity(): This method returns the current capacity.
char charAt(int index): This method returns the char value in this sequence at the specified index.
IntStream chars(): This method returns a stream of int zero-extending the char values from this sequence.
int codePointAt(int index): This method returns the character (Unicode code point) at the specified index.
int codePointBefore(int index): This method returns the character (Unicode code point) before the specified index.
int codePointCount(int beginIndex, int endIndex): This method returns the number of Unicode code points in the specified text range of this sequence.
IntStream codePoints(): This method returns a stream of code point values from this sequence.
StringBuilder delete(int start, int end): This method removes the characters in a substring of this sequence.
StringBuilder deleteCharAt(int index): This method removes the char at the specified position in this sequence.
void ensureCapacity(int minimumCapacity): This method ensures that the capacity is at least equal to the specified minimum.
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin): This method characters are copied from this sequence into the destination character array dst.
int indexOf(): This method returns the index within this string of the first occurrence of the specified substring.
StringBuilder insert(int offset, boolean b): This method inserts the string representation of the booalternatelean argument into this sequence.
StringBuilder insert(): This method inserts the string representation of the char argument into this sequence.
int lastIndexOf(): This method returns the index within this string of the last occurrence of the specified substring.
int length(): This method returns the length (character count).
int offsetByCodePoints(int index, int codePointOffset): This method returns the index within this sequence that is offset from the given index by codePointOffset code points.
StringBuilder replace(int start, int end, String str): This method replaces the characters in a substring of this sequence with characters in the specified String.
StringBuilder reverse(): This method causes this character sequence to be replaced by the reverse of the sequence.
void setCharAt(int index, char ch): In this method, the character at the specified index is set to ch.
void setLength(int newLength): This method sets the length of the character sequence.
CharSequence subSequence(int start, int end): This method returns a new character sequence that is a subsequence of this sequence.
String substring(): This method returns a new String that contains a subsequence of characters currently contained in this character sequence.
String toString(): This method returns a string representing the data in this sequence.
void trimToSize(): This method attempts to reduce storage used for the character sequence. 
Example:  
Java
// Java code to illustrate// methods of StringBuilder import java.util.*;import java.util.concurrent.LinkedBlockingQueue; public class GFG1 {    public static void main(String[] argv)        throws Exception    {         // create a StringBuilder object        // with a String pass as parameter        StringBuilder str            = new StringBuilder("AAAABBBCCCC");         // print string        System.out.println("String = "                           + str.toString());         // reverse the string        StringBuilder reverseStr = str.reverse();         // print string        System.out.println("Reverse String = "                           + reverseStr.toString());         // Append ', '(44) to the String        str.appendCodePoint(44);         // Print the modified String        System.out.println("Modified StringBuilder = "                           + str);         // get capacity        int capacity = str.capacity();         // print the result        System.out.println("StringBuilder = " + str);        System.out.println("Capacity of StringBuilder = "                           + capacity);    }}
String = AAAABBBCCCC
Reverse String = CCCCBBBAAAA
Modified StringBuilder = CCCCBBBAAAA,
StringBuilder = CCCCBBBAAAA,
Capacity of StringBuilder = 27
 
BryanBarrows
sandellfamily2013
prachisoda1234
makwanabrijesh777
Java-Class and Object
Java-lang package
Java-StringBuilder
Java
Java-Class and Object
Java
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Split() String method in Java with examples
Arrays.sort() in Java with examples
Reverse a string in Java
How to iterate any Map in Java
Stream In Java
Singleton Class in Java
Initializing a List in Java
Initialize an ArrayList in Java
Generics in Java
Java Programming Examples