Método Matcher appendReplacement(StringBuffer, String) en Java con ejemplos

El método appendReplacement(StringBuffer, String) de Matcher Class se comporta como un método de agregar y reemplazar. Este método lee la string de entrada y la reemplaza con el patrón coincidente en la string del comparador.

Sintaxis:

public Matcher 
    appendReplacement(StringBuffer buffer, 
                      String stringToBeReplaced)

Parámetros: Este método toma dos parámetros:

  • buffer : que es el StringBuffer que almacena la string de destino.
  • stringToBeReplaced : que es la string que se reemplazará en el comparador.

Valor de retorno: este método devuelve un Matcher con la string de destino reemplazada.

Excepción: este método arroja las siguientes excepciones:

  • IllegalStateException : si aún no se ha intentado ninguna coincidencia o si la operación de coincidencia anterior falló
  • IllegalArgumentException : si la string de reemplazo hace referencia a un grupo de captura con nombre que no existe en el patrón
  • IndexOutOfBoundsException : si la string de reemplazo se refiere a un grupo de captura que no existe en el patrón

Los siguientes ejemplos ilustran el método Matcher.appendReplacement():

Ejemplo 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());
    }
}
Producción:

Before Replacement: GeeksForGeeks Geeks for For Geeks Geek
After Replacement: GEEKSForGEEKS GEEKS for For GEEKS Geek

Ejemplo 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());
    }
}
Producción:

Before Replacement: FGF FGF FGF FGF
After Replacement: GFG GFG GFG GFG

Referencia: https://docs.oracle.com/javase/9/docs/api/java/util/regex/Matcher.html#appendReplacement-java.lang.StringBuffer-java.lang.String-

Publicación traducida automáticamente

Artículo escrito por Kirti_Mangal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *