The appendReplacement(StringBuilder, String) method of Matcher Class behaves as a append-and-replace method. This method reads the input string and replace it with the matched pattern in the matcher string.
Syntax:
public Matcher
appendReplacement(StringBuilder builder,
String stringToBeReplaced)
Parameters: This method takes two parameters:
- builder: which is the StringBuilder that stores the target string.
- stringToBeReplaced: which is the String to be replaced in the matcher.
Return Value: This method returns a Matcher with the target String replaced.
Exception: This method throws following exceptions:
- IllegalStateException: If no match has yet been attempted, or if the previous match operation failed
- IllegalArgumentException: If the replacement string refers to a named-capturing group that does not exist in the pattern
- IndexOutOfBoundsException: If the replacement string refers to a capturing group that does not exist in the pattern
Below examples illustrate the Matcher.appendReplacement() method:
Example 1:
// Java code to illustrate appendReplacement() method  import java.util.regex.*;  public class GFG {    public static void main(String[] args)    {          // Get the regex to be checked        String regex = "(Geeks)";          // Create a pattern from regex        Pattern pattern            = Pattern.compile(regex);          // Get the String to be matched        String stringToBeMatched            = "GeeksForGeeks Geeks for For Geeks Geek";          // Create a matcher for the input String        Matcher matcher            = pattern.matcher(stringToBeMatched);          System.out.println("Before Replacement: "                           + stringToBeMatched);          // Get the String to be replaced        String stringToBeReplaced = "GEEKS";        StringBuilder builder = new StringBuilder();          // Replace every matched pattern        // with the target String        // using appendReplacement() method        while (matcher.find()) {            matcher.appendReplacement(builder,                                      stringToBeReplaced);        }        matcher.appendTail(builder);          // Print the replaced matcher        System.out.println("After Replacement: "                           + builder.toString());    }} |
Before Replacement: GeeksForGeeks Geeks for For Geeks Geek After Replacement: GEEKSForGEEKS GEEKS for For GEEKS Geek
Example 2:
// Java code to illustrate appendReplacement() method  import java.util.regex.*;  public class GFG {    public static void main(String[] args)    {          // Get the regex to be checked        String regex = "(FGF)";          // Create a pattern from regex        Pattern pattern            = Pattern.compile(regex);          // Get the String to be matched        String stringToBeMatched            = "FGF FGF FGF FGF";          // Create a matcher for the input String        Matcher matcher            = pattern.matcher(stringToBeMatched);          System.out.println("Before Replacement: "                           + stringToBeMatched);          // Get the String to be replaced        String stringToBeReplaced = "GFG";        StringBuilder builder = new StringBuilder();          // Replace every matched pattern        // with the target String        // using appendReplacement() method        while (matcher.find()) {            matcher.appendReplacement(builder,                                      stringToBeReplaced);        }        matcher.appendTail(builder);          // Print the replaced matcher        System.out.println("After Replacement: "                           + builder.toString());    }} |
Before Replacement: FGF FGF FGF FGF After Replacement: GFG GFG GFG GFG
