StringBuilder in Java Programming Language

Rumman Ansari   Software Engineer   2019-03-30   7476 Share
☰ Table of Contents

Table of Content:


J2SE 1.5 adds a new string class to Java's already powerful string handling capabilities. This new class is called StringBuilder. Java StringBuilder class is used to create mutable (modifiable) string.

StringBuilder is identical to StringBuffer except for one important difference that it is not synchronized, which means it is not thread safe. Its because StringBuilder methods are not synchronised.

Advantage

The advantage of StringBuilder is faster performance than StringBuffer.

Why and when we should use StringBuilder

A mutable sequence of characters. This class provides an API compatible with StringBuffer, but with no guarantee of synchronization. This class is designed for use as a drop-in replacement for StringBuffer in places where the string buffer 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.

StringBuilder Constructors

Constructor Description
StringBuilder() creates an empty string Builder with the initial capacity of 16.
StringBuilder(String str) creates a string Builder with the specified string.
StringBuilder(int length) creates an empty string Builder with the specified capacity as length.

Some Important Methods in Java for Beginner

1) StringBuilder append() method

Program

class StringBuilderAppend{
public static void main(String args[]){
	StringBuilder sb=new StringBuilder("welcome ");
	sb.append("to atnyla");//now original string is changed
	System.out.println(sb);
 }
}

Output

welcome to atnyla
Press any key to continue . . .

2) StringBuilder insert() method

Program

class StringBuilderInsert{
public static void main(String args[]){
	StringBuilder strng=new StringBuilder("Welcome ");
	strng.insert(1,"Java");//now original string is changed
	System.out.println(strng);
 }
}

Output

WJavaelcome
Press any key to continue . . .

3) StringBuilder replace() method

Program

class StringBuilderReplace{
public static void main(String args[]){
	StringBuilder strng=new StringBuilder("Welcome");
	strng.replace(1,3,"Java");
	System.out.println(strng);
	}
}

Output

WJavacome
Press any key to continue . . .

4) StringBuilder delete() method

Program

class StringBuilderDelete{
public static void main(String args[]){
	StringBuilder strng=new StringBuilder("Welcome");
	strng.delete(1,3);
	System.out.println(strng);
	}
}

Output

WJavacome
Press any key to continue . . .

5) StringBuilder reverse() method

Program

class StringBuilderReverse{
public static void main(String args[]){
	StringBuilder strng=new StringBuilder("Welcome");
	strng.reverse();
	System.out.println(strng);
	}
}

Output

emocleW
Press any key to continue . . .

More Methods in Java

Modifier and Type Method and Description
StringBuilder append(boolean b)
Appends the string representation of the boolean argument to the sequence.
StringBuilder append(char c)
Appends the string representation of the char argument to this sequence.
StringBuilder append(char[] str)
Appends the string representation of the char array argument to this sequence.
StringBuilder append(char[] str, int offset, int len)
Appends the string representation of a subarray of the char array argument to this sequence.
StringBuilder append(CharSequence s)
Appends the specified character sequence to this Appendable.
StringBuilder append(CharSequence s, int start, int end)
Appends a subsequence of the specified CharSequence to this sequence.
StringBuilder append(double d)
Appends the string representation of the double argument to this sequence.
StringBuilder append(float f)
Appends the string representation of the float argument to this sequence.
StringBuilder append(int i)
Appends the string representation of the int argument to this sequence.
StringBuilder append(long lng)
Appends the string representation of the long argument to this sequence.
StringBuilder append(Object obj)
Appends the string representation of the Object argument.
StringBuilder append(String str)
Appends the specified string to this character sequence.
StringBuilder append(StringBuffer sb)
Appends the specified StringBuffer to this sequence.
StringBuilder appendCodePoint(int codePoint)
Appends the string representation of the codePoint argument to this sequence.
int capacity()
Returns the current capacity.
char charAt(int index)
Returns the char value in this sequence at the specified index.
int codePointAt(int index)
Returns the character (Unicode code point) at the specified index.
int codePointBefore(int index)
Returns the character (Unicode code point) before the specified index.
int codePointCount(int beginIndex, int endIndex)
Returns the number of Unicode code points in the specified text range of this sequence.
StringBuilder delete(int start, int end)
Removes the characters in a substring of this sequence.
StringBuilder deleteCharAt(int index)
Removes the char at the specified position in this sequence.
void ensureCapacity(int minimumCapacity)
Ensures that the capacity is at least equal to the specified minimum.
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
Characters are copied from this sequence into the destination character array dst.
int indexOf(String str)
Returns the index within this string of the first occurrence of the specified substring.
int indexOf(String str, int fromIndex)
Returns the index within this string of the first occurrence of the specified substring, starting at the specified index.
StringBuilder insert(int offset, boolean b)
Inserts the string representation of the boolean argument into this sequence.
StringBuilder insert(int offset, char c)
Inserts the string representation of the char argument into this sequence.
StringBuilder insert(int offset, char[] str)
Inserts the string representation of the char array argument into this sequence.
StringBuilder insert(int index, char[] str, int offset, int len)
Inserts the string representation of a subarray of the str array argument into this sequence.
StringBuilder insert(int dstOffset, CharSequence s)
Inserts the specified CharSequence into this sequence.
StringBuilder insert(int dstOffset, CharSequence s, int start, int end)
Inserts a subsequence of the specified CharSequence into this sequence.
StringBuilder insert(int offset, double d)
Inserts the string representation of the double argument into this sequence.
StringBuilder insert(int offset, float f)
Inserts the string representation of the float argument into this sequence.
StringBuilder insert(int offset, int i)
Inserts the string representation of the second int argument into this sequence.
StringBuilder insert(int offset, long l)
Inserts the string representation of the long argument into this sequence.
StringBuilder insert(int offset, Object obj)
Inserts the string representation of the Object argument into this character sequence.
StringBuilder insert(int offset, String str)
Inserts the string into this character sequence.
int lastIndexOf(String str)
Returns the index within this string of the rightmost occurrence of the specified substring.
int lastIndexOf(String str, int fromIndex)
Returns the index within this string of the last occurrence of the specified substring.
int length()
Returns the length (character count).
int offsetByCodePoints(int index, int codePointOffset)
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)
Replaces the characters in a substring of this sequence with characters in the specified String.
StringBuilder reverse()
Causes this character sequence to be replaced by the reverse of the sequence.
void setCharAt(int index, char ch)
The character at the specified index is set to ch.
void setLength(int newLength)
Sets the length of the character sequence.
CharSequence subSequence(int start, int end)
Returns a new character sequence that is a subsequence of this sequence.
String substring(int start)
Returns a new String that contains a subsequence of characters currently contained in this character sequence.
String substring(int start, int end)
Returns a new String that contains a subsequence of characters currently contained in this sequence.
String toString()
Returns a string representing the data in this sequence.
void trimToSize()
Attempts to reduce storage used for the character sequence.

From Oracle doc