Open In App
Related Articles

Matcher appendReplacement(StringBuffer, String) method in Java with Examples

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Report issue
Report
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());
    }
}

                    
Output:
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());
    }
}

                    
Output:
Before Replacement: FGF FGF FGF FGF
After Replacement: GFG GFG GFG GFG
Reference: https://docs.oracle.com/javase/9/docs/api/java/util/regex/Matcher.html#appendReplacement-java.lang.StringBuffer-java.lang.String-

Last Updated : 27 Nov, 2018
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads