×

StringBuilder in Java

StringBuilder in Java

Java StringBuilder class is introduced since JDK 1.5. The StringBuilder class is mainly used to create modifiable or mutable strings. Note that the StringBuilder class is not synchronized. The methods of the StringBuilder class are very much identical to the methods of the StringBuffer class.


Java StringBuilder Constructor

The StringBuilder class provides the following constructors:

1) StringBuilder(): The default constructor creates an empty StringBuilder and provides the initial capacity for 16 characters.

2) StringBuilder(int capacity): The parameterized constructor creates an empty StringBuilder and provides the capacity specified in the argument.

3)StringBuilder(CharSequence sequence): Another parametrized constructor that builds a non-empty String builder using the character sequence mentioned in the argument.

4) StringBuilder(String st): Another parametrized constructor that makes a non-empty String Builder using the content provided in the argument.
The following code uses the above-mentioned constructors to create objects of the StringBuilder class.

FileName: StringBuilderExample.java

 // A Java program to demonstrate StringBuilder
import java.util.*;
public class StringBufferExample
{
// main method
public static void main(String argvs[]) throws Exception
{
// build a StringBuilder object
// using the parameterless constructor
StringBuilder st = new StringBuilder();
st.append("Tutorial & Example");
// display string on the console
System.out.println("The First String = " + st.toString() );
// building a StringBuilder object
// using the StringBuilder(Charseq) constructor
StringBuilder st1 = new StringBuilder("AAABBCC");
// display string on the console
System.out.println("The Second String = " + st1.toString() );
// building a StringBuilder object
// using the StringBuilder(capacity) constructor
StringBuilder st2 = new StringBuilder(11);
// display string on the console
System.out.println("The capacity of the String Builder is = " + st2.capacity());
String s = "ABC";
// build a StringBuilder object
// using the StringBuilder(String) constructor
StringBuilder st3 = new StringBuilder(s);
// display string on the console
System.out.println("The Third String = " + s.toString());
}
} 

Output:

 The First String = Tutorial & Example
The Second String = AAABBCC
The capacity of the String Builder is = 11
The Third String = ABC 


Explanation: After creating different objects of the StringBuilder class, the toString() method is invoked on the objects to return the string, which represents the data contained in the String Builder object.

Java StringBuilder Class Methods
The StringBuilder class has a lot of inbuilt methods. A few of them are mentioned below.

Method NameDescription
public StringBuilder append(String str)Used to add string str at the end of the string on which the append() method is called. The append() method is overloaded with primitive data types like append(int), append(float), etc.
public StringBuilder replace(int start, int end, String s)Replaces the specified string from index start to index end using the string s.
public StringBuilder delete(int start, int end)Modifies the specified string by deleting its characters from the start index to the end index.
public int capacity()Returns the capacity
public char charAt(int idx)Whatever character is present at the index idx gets returned upon the invocation of this method.
public String substring(int i)Returns a substring of the specified string that starts from the index i
public String substring(int start, int end)Returns a substring of the specified string that starts from the index start and goes till the end index.
public StringBuilder reverse()Manipulates the specified string by reversing it
public void ensureCapacity(int minCapacity)Ensures that capacity is at least equal to the argument minCapacity
public StringBuilder delete(int start, int end)Modifies the specified string by deleting characters from the start index to end index
public StringBuilder insert(int offset, String str)Inserts the string str in the specified string at the particular location by using the help of offset. The overloaded version of the method also exists for primitive data types.
public void setCharAt(int i, char c)Modifies the given string by replacing the character at the index i with character c.


Let’s use the StringBuilder class methods in Java program.

The insert() method

FileName: StringBuilderMethodsExample.java

 public class StringBuilderMethodsExample
{ 
    // main method
    public static void main(String argvs[])
    { 
        // creating an object of the String Builder class
        StringBuilder sb = new StringBuilder("Hello World "); 
        System.out.println("String before the insert method is invoked - " + sb);
        sb.insert(0,"New Java "); // inserting the string “New Java” at the index 0 
        System.out.println(); // new line
        System.out.println("String after the insert method is invoked  - " + sb);
    } 
}  

Output:

 String before the insert method is invoked - Hello World
String after the insert method is invoked  - New Java Hello World 

Explanation: It is evident that, when the insert() method inserts the specified string at any specified index, the characters present at, and after that index gets shifted to make space for the string to be inserted.

The charAt() method

FileName: StringBuilderMethodsExample1.java

 public class StringBuilderMethodsExample1
{ 
// main method
public static void main(String argvs[])
{ 
    // creating an object of the String Builder class
    StringBuilder sb = new StringBuilder("Hello World "); 
    int i = 7; // i represents index
    // ch stores the character present at index i
    char ch  = sb.charAt(i);
    // displaying the character present at the index i
    System.out.println("Character present at the index " + i + " is " + ch);
} 
}  

Output:

Character present at the index 7 is o

Explanation: In the above program, the variable ch stores the character present at the index i.

The replace() method

FileName: StringBuilderMethodsExample2.java

 public class StringBuilderMethodsExample2
{ 
// main method
public static void main(String argvs[])
{ 
    // creating an object of the String Builder class
    StringBuilder sb = new StringBuilder("Hello World "); 
    System.out.println("The given string is " + sb);
    // starting and ending index
    int start = 8;
    int end = 10;
    // string that does the replacement
    String str = "ooo";
    // invoking the replace() method
    StringBuilder newSb = sb.replace(start, end, str);
    System.out.println(); // new line
    System.out.println("The updated string is " + newSb);
} 
}  

Output:

 The given string is Hello World
The updated string is Hello Wooood 

Explanation: The replace() method considers the indices just before the end index, starting from the start index. Thus, as per the above program, the replace() method considers indices from 8  to (10 – 1), i.e., 8 to 9. Thus, characters ‘r’ and ‘l’ are omitted, and the output confirms the same.

The delete() method

FileName: StringBuilderMethodsExample3.java

 public class StringBuilderMethodsExample3
{ 
// main method
public static void main(String argvs[])
{ 
    // creating an object of the String Builder class
    StringBuilder sb = new StringBuilder("Hello World "); 
    System.out.println("The given string is " + sb);
    // starting and ending index
    int startIndex = 8;
    int endIndex = 10;
    // invoking the delete() method
    StringBuilder newSb = sb.delete(startIndex, endIndex);
    System.out.println(); // new line
    System.out.println("The updated string is " + newSb);
} 
}  

Output:

 The given string is Hello World
The updated string is Hello Wod 

Explanation: Similar to the replace() method, the delete() method considers the index, which is just before the specified ending index, as its last index (endIndex – 1 in our case). The start index is startIndex. Hence, characters ‘r’ and ‘l’ get omitted, which is evident by looking at the output.

The reverse() method

FileName: StringBuilderMethodsExample4.java

 public class StringBuilderMethodsExample4
{ 
// main method
public static void main(String argvs[])
{ 
    // creating an object of the String Builder class
    StringBuilder sb = new StringBuilder("Hello World "); 
    System.out.println("The given string is " + sb);
    // invoking the reverse() method
    StringBuilder newSb = sb.reverse();
    System.out.println(); // new line
    System.out.println("The updated string is " + newSb);
} 
}  

Output:

 The given string is Hello World
The updated string is  dlroW olleH 

Explanation: In the program, the variable newSb stores the reversed string that is getting displayed in the output. The reverse() method comes in handy when one wants to check for palindromic strings.

The substring() method - I

FileName: StringBuilderMethodsExample5.java

 public class StringBuilderMethodsExample5
{ 
// main method
public static void main(String argvs[])
{ 
    // creating an object of the String Builder class
    StringBuilder sb = new StringBuilder("Hello World "); 
    System.out.println("The given string is " + sb);
    int index  = 6;
    // invoking the substring() method
    String newSb = sb.substring(index);
    System.out.println(); // new line
    System.out.println("The substring starting from index " + index + " is " + newSb);
} 
}  

Output:

 The given string is Hello World
The substring starting from index 6 is World 

Explanation: In the above program, we have only specified the starting index of the substring. The last index of the substring automatically becomes the last index of the given string.

The substring() method - II

FileName: StringBuilderMethodsExample6.java

 public class StringBuilderMethodsExample6
{ 
// main method
public static void main(String argvs[])
{ 
    // creating an object of the String Builder class
    StringBuilder sb = new StringBuilder("Hello World "); 
    System.out.println("The given string is " + sb);
    int startIndex  = 6;
    int endIndex = 9;
    // invoking the substring() method
    String newSb = sb.substring(startIndex, endIndex);
    System.out.println(); // new line
    System.out.println("The substring starting from index "  + startIndex + " and ending at " + endIndex + " is " + newSb);
} 
}  

Output:

 The given string is Hello World
The substring starting from index 6 and ending at 9 is Wor 

Explanation: The substring() method used in the above program is another version that requires the ending index too. Thus, whatever is present between the starting and ending index gets printed on the console.

The capacity() method

FileName: StringBuilderMethodsExample7.java

 public class StringBuilderMethodsExample7
{ 
// main method
public static void main(String argvs[])
{ 
    // creating an object of the String Builder class
    StringBuilder sb = new StringBuilder( );
    // invoking the method capacity
    int capacity = sb.capacity();
    System.out.println("The current capacity is: " + capacity);
} 
}  

Output:

The current capacity is: 16

Explanation: In the program, the parameterless constructor is invoked. Therefore, the capacity is 16.

The ensureCapacity() method

FileName: StringBuilderMethodsExample8.java

 public class StringBuilderMethodsExample8
{ 
// main method
public static void main(String argvs[])
{ 
    // creating an object of the String Builder class
    StringBuilder sb = new StringBuilder( );
    int minCapacity = 50;
    // invoking the method ensureCapacity(), with minCapacity as its argument
    sb.ensureCapacity(minCapacity);
    // invoking the method capacity
    int capacity = sb.capacity();
    System.out.println("The current capacity is: " + capacity);
} 
}  

Output:

The current capacity is: 50

Explanation: In the above program, the ensureCapacity() method takes minCapacity in its argument. Therefore, the current capacity has to be greater than or equal to the value fetched by the variable minCapacity.

The setCharAt() method

FileName: StringBuilderMethodsExample9.java

 public class StringBuilderMethodsExample9
{ 
// main method
public static void main(String argvs[])
{ 
    // creating an object of the String Builder class
    StringBuilder sb = new StringBuilder("Hello World" );
    // specifies the index at which
    // updation is going to take place
    int index = 7;
    // the new character to be inserted
    char newChar = 'r';
    // invoking the setCharAt() method
    sb.setCharAt(index, newChar);
    System.out.println("The current string is: " + sb);
} 
}  

Output:

The current string is: Hello Wrrld

Explanation: The setCharAt() method replaces the character present at the specified with the character provided by the user in its argument. In the above program, the character ‘o’ of the word ‘World’ is getting replaced by the character ‘r’.


Related Topics

GCD Program in Java

GCD Program in Java The GCD program in Java outputs the GCD of the given numbers. In mathematics, Greatest Common Divisor (GCD), Greatest Common Factor or Highest Common Factor (HCF) of...

14 minutes read.

Java Obfuscator

Obfuscation is the process of making something unclear or difficult to interpret. Obfuscators are being used in programming to protect the source code from hackers. In this article, we will...

8 minutes read.

Java File Input Stream

Java makes use of stream ideas to speed up input and output processes. All packages of input and output streams are contained in java.io.package. Stream: A stream is nothing more...

5 minutes read.

Java Exception Propagation

Java Exception Propagation When an exception is being thrown from the peak of the stack and not getting caught, it runs down the stack to the previous method, which is sitting...

3 minutes read.

Java Code Coverage Tools

Code coverage testing is a crucial metric that gauges how thoroughly the program's source code has been tested. The market is flooded with Code Coverage Tools, making it difficult to...

7 minutes read.

Applet Life Cycle in Java

In this article, we are going to acknowledge you about what a applet is, what is its life cycle and stages in life cycle, along with the syntax and example...

4 minutes read.

Advantages of Generics in Java

Generic offers a variety of benefits. The programmer's life is made easier by using generic Java. In this section, we are going to discuss about Java's generic’s and its benefits. 1....

4 minutes read.

Java Thread Creation

Java provides the two ways to create a Thread: Implementing the Runnable interface.Extending the Thread class. Implementing Runnable interface The easiest way of creating a thread is to make a class that implements...

5 minutes read.

Minimum Difference Between Groups of Size Two in Java

There is given an array with various integers in it. The goal is to divide the elements into distinct groups, each of which has just two, so that the difference...

3 minutes read.

Exception Handling in Java

Before looking at how exceptions are handled in java, it is necessary to see what an exception is. What is Exception? Whenever a program is written, errors are encountered. Some of these...

6 minutes read.

Java Boolean Class

The Boolean class wraps a value of the Boolean primitive in an object. Its object contains only a single field whose type is Boolean. Boolean Methods: This class contains several different methods...

2 minutes read.

How to Install Java on MAC

There are many possible ways to install java on mac. This article is based on the installation of java on mac. The operating system platform is Mac OS X, macOS and...

3 minutes read.

Convert List to String in Java

We occasionally need to create a string from a list of characters. Since a string is only a collection of characters, a character array can be converted into a string....

6 minutes read.

Awesome explanation of Strings in Java

What do you mean by String? Strings are a collection of characters that are commonly used in Java programming. Strings are regarded as objects in the Java programming language. “String” is a...

4 minutes read.

Java Try Keyword

The try block in Java is used to run essential code, such as connection closure, among other things. Whether an exception is resolved or not, the Java try block has...

3 minutes read.

Java Constant

A constant is an unchangeable entity in coding, as its title implies. The value which cannot be altered, in other terms. We shall understand about Java constants and exactly how...

3 minutes read.

Java Math IEEEremainder() Method

The IEEEremainder() method of Math class calculates the remainder as prescribed by the IEEE754 standard. This method simply returns the remainder when f1 (dividend) is divided by f2 (divisor). Syntax: public static...

2 minutes read.

Java URL Class with Example

Java URL Uniform Resource Locator To find any resource on the internet, you need to have an address of it. The URL and IP addresses are the pointers used for this purpose....

12 minutes read.

Java Boolean toValue() Method

The valueOf() method of Java Boolean class returns a Boolean object representing the given Boolean or String value. It returns true, if the specified Boolean or string object is true...

2 minutes read.

Program to Reverse a Number in Java

In order to reverse a number, the digit in the first place must be swapped with the digit in the final position, the second digit with the second-to-last digit, and...

3 minutes read.