The appendReplacement(StringBuffer, 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(StringBuffer buffer, String stringToBeReplaced)
Parameters: This method takes two parameters:
- buffer: which is the StringBuffer 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" ;         StringBuffer buffer = new StringBuffer();           // Replace every matched pattern         // with the target String         // using appendReplacement() method         while (matcher.find()) {             matcher.appendReplacement(buffer,                                       stringToBeReplaced);         }         matcher.appendTail(buffer);           // Print the replaced matcher         System.out.println( "After Replacement: "                            + buffer.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" ;         StringBuffer buffer = new StringBuffer();           // Replace every matched pattern         // with the target String         // using appendReplacement() method         while (matcher.find()) {             matcher.appendReplacement(buffer,                                       stringToBeReplaced);         }         matcher.appendTail(buffer);           // Print the replaced matcher         System.out.println( "After Replacement: "                            + buffer.toString());     } } |
Before Replacement: FGF FGF FGF FGF After Replacement: GFG GFG GFG GFG