Java String replaceFirst()

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

The syntax of the replaceFirst() method is:

string.replaceFirst(String regex, String replacement)

Here, string is an object of the String class.


replaceFirst() Parameters

The replaceFirst() method takes two parameters.

  • regex - a regex (can be a typical string) that is to be replaced
  • replacement - the first matching substring is replaced with this string

replaceFirst() Return Value

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

Example 1: Java String replaceFirst()

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

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

      // the first occurrence of "aa" is replaced with "zz"
      System.out.println(str1.replaceFirst("aa", "zz")); // zzbbaaac

      // replace the first sequence of digits with a whitespace
      System.out.println(str2.replaceFirst(regex, " ")); // Learn Java55@
  }
}

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


Escaping Characters in replaceFirst()

The replaceFirst() 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 escape these characters using \.

// Program to the first + character
class Main {
  public static void main(String[] args) {
    String str = "a+a-++b";

    // replace the first "+" with "#"
    System.out.println(str.replaceFirst("\\+", "#")); // a#a-++b

  }
}

If you need to replace each substring that matches the regex, use the Java String replaceAll() method.