Java String replace()

The replace() method replaces each matching occurrence of a character/text in the string with the new character/text.

Example

class Main {
  public static void main(String[] args) {
    String str1 = "bat ball";

    // replace b with c
System.out.println(str1.replace('b', 'c'));
} } // Output: cat call

replace() Syntax

The syntax of the replace() method is either

string.replace(char oldChar, char newChar)

or

string.replace(CharSequence oldText, CharSequence newText)

Here, string is an object of the String class.


replace() Parameters

To replace a single character, the replace() method takes these two parameters:

  • oldChar - the character to be replaced in the string
  • newChar - matching characters are replaced with this character

To replace a substring, the replace() method takes these two parameters:

  • oldText - the substring to be replaced in the string
  • newText - matching substrings are replaced with this string

replace() Return Value

  • The replace() method returns a new string where each occurrence of the matching character/text is replaced with the new character/text.

Example 1: Java String replace() Characters

class Main {
  public static void main(String[] args) {
    String str1 = "abc cba";

    // all occurrences of 'a' is replaced with 'z'
    System.out.println(str1.replace('a', 'z'));  // zbc cbz

    // all occurences of 'L' is replaced with 'J'
    System.out.println("Lava".replace('L', 'J'));  // Java

    // character not in the string
System.out.println("Hello".replace('4', 'J')); // Hello
} }

Note: If the character to be replaced is not in the string, replace() returns the original string.


Example 2: Java String replace() Substrings

class Main {
  public static void main(String[] args) {
    String str1 = "C++ Programming";

    // all occurrences of "C++" is replaced with "Java"
System.out.println(str1.replace("C++", "Java")); // Java Programming
// all occurences of "aa" is replaced with "zz" System.out.println("aa bb aa zz".replace("aa", "zz")); // zz bb zz zz // substring not in the string System.out.println("Java".replace("C++", "C")); // Java } }

Note: If the substring to be replaced is not in the string, replace() returns the original string.


It is important to note that the replace() method replaces substrings starting from the start to the end. For example,

"zzz".replace("zz", "x") // xz

The output of the above code is xz, not zx. It's because the replace() method replaced the first zz with x.

If you need to replace substrings based on a regular expression, use the Java String replaceAll() method.