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:
Java
Java
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.
- 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
// 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:
Example 2:
Before Replacement: GeeksForGeeks Geeks for For Geeks Geek After Replacement: GEEKSForGEEKS GEEKS for For GEEKS Geek
// 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:
Reference: https://docs.oracle.com/javase/9/docs/api/java/util/regex/Matcher.html#appendReplacement-java.lang.StringBuffer-java.lang.String-Before Replacement: FGF FGF FGF FGF After Replacement: GFG GFG GFG GFG