Java - replace last character in string
Problem
I would like to change string ABC into ABD - change the last letter from 'C' to 'D'.
Explanation with code, I have:
String str = "ABC";
I expected:
String str = "ABD";
Solutions
Example 1
String text = "ABC";
String substring = text.substring(0, text.length() - 1); // AB
String replaced = substring + "D";
System.out.println(text); // ABC
System.out.println(replaced); // ABD
Steps:
- To make 'AB' from our string we use the String substring method with 2 parameters
The first parameter is beginIndex and the second parameter is endIndex. EndIndex is the entire length of our string minus 1 letter to remove the last letter. - We add the letter we want at the end of the string - in our case it's 'D'
- As expected we replaced the last letter from C to D.
Example 2
Let's visualize this problem on a string with digits. We want to replace the last letter of string '123' with digit '4' to have string '124'.
String text = "123";
String substring = text.substring(0, text.length() - 1); // 12
String replaced = substring + "4";
System.out.println(text); // 123
System.out.println(replaced); // 124
Example 3
In the below example, we are gonna take a look at how to create our own utility method to help us to replace the last letter of the string. The below example have the utility method replaceLastLetter() which takes our string as the first parameter and our new letter as second parameter. As the result of the utility method, we get a string with replaced last letter. The below example takes the string 'ABC' and replaces the last letter 'C' into 'D' and the result is 'ABD'.
public class Example {
public static String replaceLastLetter(String text, String newLetter) {
String substring = text.substring(0, text.length() - 1); // ABC -> AB
return substring + newLetter; // ABD
}
public static void main(String[] args) {
String text = "ABC";
String newLetter = "D";
String replaced = replaceLastLetter(text, newLetter);
System.out.println(text); // ABC
System.out.println(replaced); // ABD
}
}
Example 4
This example is similar to example 3, but with the difference that we take character as the second parameter, not String type. In this example, we use the fact that in java we can concatenate strings with characters with the operator '+'.
The rest of the logic works in the same way.
public class Example {
public static String replaceLastLetter(String text, char newLetter) {
String substring = text.substring(0, text.length() - 1); // ABC -> AB
return substring + newLetter; // ABD
}
public static void main(String[] args) {
String text = "ABC";
char newLetter = 'D';
String replaced = replaceLastLetter(text, newLetter);
System.out.println(text); // ABC
System.out.println(replaced); // ABD
}
}