Modifying Strings: Inserting, Deleting, and Replacing Characters
Explore how to modify strings in Java despite their immutability by using StringBuilder and substring methods. Learn the details of inserting characters or substrings, deleting characters or ranges, and replacing characters or substrings with attention to time complexity. Understand how these operations produce new strings and the performance implications, equipping you to write efficient string manipulation code.
By now, you understand that strings in Python are immutable and that every operation that appears to modify a string actually produces a new one. That raises a practical question that needs a direct answer: if strings cannot be changed in place, how do you perform the kinds of modifications that real programs and algorithms constantly require? Inserting a character at a specific position, removing an unwanted character, and replacing one substring with another are fundamental operations. Understanding how to perform them correctly and efficiently is what well cover now.
Inserting a character
Inserting a character at a specific position means placing a new character at a given index and shifting every character from that position onward one step to the right to accommodate it.
Consider the string "helo" and the requirement to insert the character 'l' at index 3.
Before: h e l oIndex: 0 1 2 3After: h e l l oIndex: 0 1 2 3 4
The character 'o' that was at index 3 has moved to index 4 to make room for the inserted character. In general, inserting at position
Insertion method 1
In Java, because strings are immutable, insertion is implemented using a StringBuilder. The insert(int offset, char ch) method places the character at the given index, shifting all subsequent characters one position to the right.
The StringBuilder conversion costs