Java String replaceAll()

In this tutorial, we will learn about the Java String replaceAll() method with the help of examples.

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


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

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

    // replace all occurrences of numeric
    // digits by a space
System.out.println(str1.replaceAll(regex, " "));
} } // Output: Java is fun

Syntax of replaceAll()

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";

    // replace "+" with "#" using replaceAll()
    // need to escape "+"
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.

Did you find this article helpful?