Matcher appendReplacement(StringBuilder, String) method in Java with Examples
Last Updated :
27 Nov, 2018
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:
import java.util.regex.*;
public class GFG {
public static void main(String[] args)
{
String regex = "(Geeks)" ;
Pattern pattern
= Pattern.compile(regex);
String stringToBeMatched
= "GeeksForGeeks Geeks for For Geeks Geek" ;
Matcher matcher
= pattern.matcher(stringToBeMatched);
System.out.println( "Before Replacement: "
+ stringToBeMatched);
String stringToBeReplaced = "GEEKS" ;
StringBuilder builder = new StringBuilder();
while (matcher.find()) {
matcher.appendReplacement(builder,
stringToBeReplaced);
}
matcher.appendTail(builder);
System.out.println( "After Replacement: "
+ builder.toString());
}
}
|
Output:
Before Replacement: GeeksForGeeks Geeks for For Geeks Geek
After Replacement: GEEKSForGEEKS GEEKS for For GEEKS Geek
Example 2:
import java.util.regex.*;
public class GFG {
public static void main(String[] args)
{
String regex = "(FGF)" ;
Pattern pattern
= Pattern.compile(regex);
String stringToBeMatched
= "FGF FGF FGF FGF" ;
Matcher matcher
= pattern.matcher(stringToBeMatched);
System.out.println( "Before Replacement: "
+ stringToBeMatched);
String stringToBeReplaced = "GFG" ;
StringBuilder builder = new StringBuilder();
while (matcher.find()) {
matcher.appendReplacement(builder,
stringToBeReplaced);
}
matcher.appendTail(builder);
System.out.println( "After Replacement: "
+ builder.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.StringBuilder-java.lang.String-
Share your thoughts in the comments
Please Login to comment...