Join our newsletter for the latest updates.

Java String replaceAll()

The Java String replaceAll() method replaces each substring that matches the regex of the string with the specified text.

The syntax of the replaceAll() method is:

string.replaceAll(String regex, String replacement)

Here, string is an object of the String class.


replaceAll() Parameters

The replaceAll() method takes two parameters.

  • regex - a regex (can be a typical string) that is to be replaced
  • replacement - matching substrings are replaced with this string

replaceAll() Return Value

  • The replaceAll() method returns a new string where each occurrence of the matching substring is replaced with the replacement string.

Example 1: Java String replaceAll()

class Main {
    public static void main(String[] args) {
        String str1 = "aabbaaac";
        String str2 = "Learn223Java55@";

        // regex for sequence of digits
        String regex = "\\d+";

        // all occurrences of "aa" is replaceAll with "zz"
        System.out.println(str1.replaceAll("aa", "zz")); // zzbbzzac

        // replace a digit or sequence of digits with a whitespace
        System.out.println(str2.replaceAll(regex, " ")); // Learn Java @

    }
}

In the above example, "\\d+" is a regular expression that matches one or more digits. To learn more, visit Java regex.


Escaping Characters in replaceAll()

The replaceAll() method can take a regex or a typical string as the first argument. It is because a typical string in itself is a regex.

In regex, there are characters that have special meaning. These metacharacters are:

\ ^ $ . | ? * + {} [] ()

If you need to match substring containing these metacharacters, you can either escape these characters using \ or use the replace() method.

// Program to replace the + character
class Main {
    public static void main(String[] args) {
        String str1 = "+a-+b";
        String str2 = "Learn223Java55@";
        String regex = "\\+";

        // replace "+" with "#" using replaceAll()
        // need to espace "+"
        System.out.println(str1.replaceAll("\\+", "#")); // #a-#b


        // replace "+" with "#" using replace() 
        System.out.println(str1.replace("+", "#")); // #a-#b
    }
}

As you can see, when we use the replace() method, we do not need to escape metacharacters. To learn more, visit: Java String replace()


If you need to replace only the first occurrence of the matching substring, use the Java String replaceFirst() method.