StringBuilder getChars() in Java with Examples

The getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) method of StringBuilder class copies the characters starting at the given index:srcBegin to index:srcEnd-1 from String contained by StringBuilder into an array of char passed as parameter to function.

  • The characters are copied from StringBuilder into the array dst[] starting at index:dstBegin and ending at index:dstbegin + (srcEnd-srcBegin) – 1.
  • The first character to be copied from StringBuilder to array is at index srcBegin and the last character to be copied is at index srcEnd-1.
  • The total number of characters to be copied is equal to srcEnd-srcBegin.

Syntax:

public void getChars(int srcBegin, int srcEnd, 
                          char[] dst, int dstBegin)

Parameters: This method accepts four different parameters:

  • srcBegin: represents index on which we have to start copying.
  • srcEnd: represents index on which we have to stop copying.
  • dst: represents the array to copy the data into.
  • dstBegin: represents index of dest array we start pasting the copied data.

Return Value: This method does not return anything.

Exception: This method throws StringIndexOutOfBoundsException if:

  • srcBegin < 0
  • dstBegin < 0
  • srcBegin > srcEnd
  • srcEnd > this.length()
  • dstBegin+srcEnd-srcBegin > dst.length

Below programs demonstrate the getChars() method of StringBuilder Class:

Example 1:

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to demonstrate
// the getChars() Method.
  
class GFG {
    public static void main(String[] args)
    {
  
        // create a StringBuilder object
        // with a String pass as parameter
        StringBuilder
            str
            = new StringBuilder("WelcomeGeeks");
  
        // print string
        System.out.println("String = "
                           + str.toString());
  
        // create a char Array
        char[] array = new char[7];
  
        // get char from index 0 to 7
        // and store in array start index 0
        str.getChars(0, 7, array, 0);
  
        // print char array after operation
        System.out.print("Char array contains : ");
  
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i] + " ");
        }
    }
}

chevron_right


Output:

String = WelcomeGeeks
Char array contains : W e l c o m e

Example 2:

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to demonstrate
// the getChars() Method.
  
import java.util.*;
  
class GFG {
    public static void main(String[] args)
    {
  
        // create a StringBuilder object
        // with a String pass as parameter
        StringBuilder
            str
            = new StringBuilder("evil dead_01");
  
        // print string
        System.out.println("String = "
                           + str.toString());
  
        // create a char Array
        char[] array = new char[10];
  
        // initialize all character to _(underscore).
        Arrays.fill(array, '_');
  
        // get char from index 5 to 9
        // and store in array start index 3
        str.getChars(5, 9, array, 3);
  
        // print char array after operation
        System.out.print("char array contains : ");
  
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i] + " ");
        }
    }
}

chevron_right


Output:

String = evil dead_01
char array contains : _ _ _ d e a d _ _ _

Example 3: To demonstrate StringIndexOutOfBoundException

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to demonstrate
// exception thrown by the getChars() Method.
  
import java.util.*;
  
class GFG {
    public static void main(String[] args)
    {
  
        // create a StringBuilder object
        // with a String pass as parameter
        StringBuilder
            str
            = new StringBuilder("evil dead_01");
  
        // create a char Array
        char[] array = new char[10];
  
        // initialize all character to _(underscore).
        Arrays.fill(array, '_');
  
        try {
  
            // if start is greater then end
            str.getChars(5, 2, array, 0);
        }
  
        catch (Exception e) {
            System.out.println("Exception: " + e);
        }
    }
}

chevron_right


Output:

Exception: java.lang.StringIndexOutOfBoundsException: srcBegin > srcEnd

Reference:
https://docs.oracle.com/javase/10/docs/api/java/lang/StringBuilder.html#getChars(int, int, char%5B%5D, int)



My Personal Notes arrow_drop_up

I am a Developer I love to code and bring my ideas alive

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.



Improved By : nidhi_biet