Replace a character at a specific index in a String in Java - GeeksforGeeks

29 May, 2021
Given a String, the task is to replace a character at a specific index in this string in Java.
Examples: 
Input: String = "Geeks Gor Geeks", index = 6, ch = 'F'
Output: "Geeks For Geeks."

Input: String = "Geeks", index = 0, ch = 'g'
Output: "geeks"
Method 1: Using String Class
There is no predefined method in String Class to replace a specific character in a String, as of now. However, this can be achieved indirectly by constructing a new String with 2 different substrings, one from beginning till the specific index – 1, the new character at the specific index and the other from the index + 1 till the end.Below is the implementation of the above approach: 
Java
public class GFG {     public static void main(String args[])    {         // Get the String        String str = "Geeks Gor Geeks";         // Get the index        int index = 6;         // Get the character        char ch = 'F';         // Print the original string        System.out.println("Original String = " + str);         str = str.substring(0, index) + ch              + str.substring(index + 1);         // Print the modified string        System.out.println("Modified String = " + str);    }}
Original String = Geeks Gor Geeks
Modified String = Geeks For Geeks
Method 2: Using StringBuilder
Unlike String Class, the StringBuilder class has a predefined method for this purpose – setCharAt(). Replace the character at the specific index by calling this method and passing the character and the index as the parameter.Below is the implementation of the above approach: 
Java
public class GFG {     public static void main(String args[])    {         // Get the String        String str = "Geeks Gor Geeks";         // Get the index        int index = 6;         // Get the character        char ch = 'F';         // Print the original string        System.out.println("Original String = " + str);         StringBuilder string = new StringBuilder(str);        string.setCharAt(index, ch);         // Print the modified string        System.out.println("Modified String = " + string);    }}
Original String = Geeks Gor Geeks
Modified String = Geeks For Geeks
Method 3: Using StringBuffer
Like StringBuilder, the StringBuffer class has a predefined method for this purpose – setCharAt(). Replace the character at the specific index by calling this method and passing the character and the index as the parameter. StringBuffer is thread-safe. StringBuilder is faster when compared to StringBuffer, but is not thread-safe.
Below is the implementation of the above approach: 
Java
public class GFG {     public static void main(String args[])    {         // Get the String        String str = "Geeks Gor Geeks";         // Get the index        int index = 6;         // Get the character        char ch = 'F';         // Print the original string        System.out.println("Original String = " + str);         StringBuffer string = new StringBuffer(str);        string.setCharAt(index, ch);         // Print the modified string        System.out.println("Modified String = " + string);    }}
Original String = Geeks Gor Geeks
Modified String = Geeks For Geeks
shivanirudramaina
Java-lang package
Java-String-Programs
Java-StringBuilder
Java-Strings
Java
Java-Strings
Java
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Object Oriented Programming (OOPs) Concept in Java
HashMap in Java with Examples
Stream In Java
Interfaces in Java
How to iterate any Map in Java
ArrayList in Java
Initialize an ArrayList in Java
Stack Class in Java
Multidimensional Arrays in Java
Singleton Class in Java