Clase de cadena en Java

StringBuffer es una clase de compañeros de Cuerda que proporciona gran parte de la funcionalidad de las cadenas. String representa secuencias de caracteres inmutables de longitud fija, mientras que StringBuffer representa secuencias de caracteres que pueden crecer y escribirse.

StringBuffer puede tener caracteres y subcadenas insertados en el medio o al final. Eso crecerá automáticamente para dejar espacio para tales adiciones y, a menudo, tiene más caracteres preasignados de los que realmente se necesitan, para permitir espacio para el crecimiento.

Constructores StringBuffer

StringBuffer (): Reserva espacio para 16 caracteres sin reasignación.

StringBuffer s=new StringBuffer();

StringBuffer (tamaño int)Acepta un argumento entero que establece explícitamente el tamaño del búfer.

StringBuffer s=new StringBuffer(20);

StringBuffer (String str): Acepta un Cuerda argumento que establece el contenido inicial del objeto StringBuffer y reserva espacio para 16 caracteres más sin reasignación.

br>

StringBuffer s=new StringBuffer("GeeksforGeeks");

Métodos

Algunos de los métodos más utilizados son:

  • longitud () y capacidad (): La longitud de un StringBuffer se puede encontrar mediante el método length (), mientras que la capacidad total asignada se puede encontrar mediante el método capacity ().

    Ejemplo de código:

    import java.io.*;

    class GFG {

        public static void main(String[] args)

        {

            StringBuffer s = new StringBuffer("GeeksforGeeks");

            int p = s.length();

            int q = s.capacity();

            System.out.println("Length of string GeeksforGeeks=" + p);

            System.out.println("Capacity of string GeeksforGeeks=" + q);

        }

    }

    Producción:

    Length of string GeeksforGeeks=13
    Capacity of string GeeksforGeeks=29
    
  • adjuntar( ): Se utiliza para agregar texto al final del texto de existencia. Estas son algunas de sus formas:
    StringBuffer append(String str)
    StringBuffer append(int num)
    

    Código Ejemplo:

    import java.io.*;

    class GFG {

        public static void main(String[] args)

        {

            StringBuffer s = new StringBuffer("Geeksfor");

            s.append("Geeks");

            System.out.println(s);

            s.append(1);

            System.out.println(s);

        }

    }

    Producción:

    GeeksforGeeks
    GeeksforGeeks1
    
  • insertar (): Se utiliza para insertar texto en la posición de índice especificada. Estas son algunas de sus formas:
    StringBuffer insert(int index, String str)
    StringBuffer insert(int index, char ch)

    Aquí, índice especifica el índice en el que se insertará la cadena en la invocación StringBuffer objeto.

    Ejemplo de código:

    import java.io.*;

    class GFG {

        public static void main(String[] args)

        {

            StringBuffer s = new StringBuffer("GeeksGeeks");

            s.insert(5, "for");

            System.out.println(s);

     

            s.insert(0, 5);

            System.out.println(s);

     

            s.insert(3, true);

            System.out.println(s);

     

            s.insert(5, 41.35d);

            System.out.println(s);

     

            s.insert(8, 41.35f);

            System.out.println(s);

     

            char geeks_arr[] = { 'p', 'a', 'w', 'a', 'n' };

     

            

            s.insert(2, geeks_arr);

            System.out.println(s);

        }

    }

    Producción:

    GeeksforGeeks
    5GeeksforGeeks
    5GetrueeksforGeeks
    5Getr41.35ueeksforGeeks
    5Getr41.41.3535ueeksforGeeks
    5Gpawanetr41.41.3535ueeksforGeeks
    
  • contrarrestar( ): Puede invertir los caracteres dentro de un objeto StringBuffer usando contrarrestar( ).Este método devuelve el objeto invertido en el que se llamó.

    Ejemplo de código:

    import java.io.*;

    class GFG {

        public static void main(String[] args)

        {

            StringBuffer s = new StringBuffer("GeeksGeeks");

            s.reverse();

            System.out.println(s);

        }

    }

  • delete () y deleteCharAt (): Puede eliminar caracteres dentro de un StringBuffer utilizando los métodos Eliminar( ) y deleteCharAt ().El Eliminar( ) El método elimina una secuencia de caracteres del objeto que invoca. Aquí, el índice inicial especifica el índice del primer carácter que se va a eliminar y el índice final especifica un índice pasado el último carácter que se va a quitar. Por lo tanto, la subcadena eliminada se ejecuta desde el índice inicial hasta el índice final – 1. Se devuelve el objeto StringBuffer resultante. El deleteCharAt () El método elimina el carácter en el índice especificado por loc. Devuelve el objeto StringBuffer resultante. Estos métodos se muestran aquí:
    StringBuffer delete(int startIndex, int endIndex)
    StringBuffer deleteCharAt(int loc)
    

    Ejemplo de código:

    import java.io.*;

    class GFG {

        public static void main(String[] args)

        {

            StringBuffer s = new StringBuffer("GeeksforGeeks");

            s.delete(0, 5);

            System.out.println(s);

            s.deleteCharAt(7);

            System.out.println(s);

        }

    }

  • reemplazar( ): Puede reemplazar un conjunto de caracteres con otro conjunto dentro de un objeto StringBuffer llamando a replace (). La subcadena que se reemplaza se especifica mediante los índices start Index y endIndex. Por lo tanto, se reemplaza la subcadena desde el índice inicial hasta el índice final – 1. La cadena de reemplazo se pasa en str. El objeto StringBuffer resultante se devuelve. Su firma se muestra aquí:
    StringBuffer replace(int startIndex, int endIndex, String str)

    Ejemplo de código:

    import java.io.*;

    class GFG {

        public static void main(String[] args)

        {

            StringBuffer s = new StringBuffer("GeeksforGeeks");

            s.replace(5, 8, "are");

            System.out.println(s);

        }

    }

  • asegurarCapacidad (): Se utiliza para aumentar la capacidad de un objeto StringBuffer. La nueva capacidad se establecerá en el valor que especifiquemos o en el doble de la capacidad actual más dos (es decir, capacidad + 2), lo que sea mayor. Aquí, la capacidad especifica el tamaño del búfer.
    void ensureCapacity(int capacity)

    Además de eso, también se pueden usar todos los métodos que se usan en la clase String.

  • StringBuffer appendCodePoint (int codePoint): Este método agrega la representación de cadena del argumento codePoint a esta secuencia.
    Sintaxis:
    public StringBuffer appendCodePoint(int codePoint)
    
  • char charAt (índice int): Este método devuelve el valor de carácter en esta secuencia en el índice especificado.
    Sintaxis:
    public char charAt(int index)
    
  • Caracteres IntStream (): Este método devuelve un flujo de int cero extendiendo los valores char de esta secuencia.
    Sintaxis:
    public IntStream chars()
    
  • int codePointAt (int índice): Este método devuelve el carácter (punto de código Unicode) en el índice especificado.
    Sintaxis:
    public int codePointAt(int index)
    
  • int codePointBefore (int índice): Este método devuelve el carácter (punto de código Unicode) antes del índice especificado.
    Sintaxis:
    public int codePointBefore(int index)
    
  • int codePointCount (int beginIndex, int endIndex): Este método devuelve el número de puntos de código Unicode en el rango de texto especificado de esta secuencia.
    Sintaxis:
    public int codePointCount(int beginIndex,
                              int endIndex)
    
  • IntStream codePoints (): Este método devuelve un flujo de valores de puntos de código de esta secuencia.
    Sintaxis:
    public IntStream codePoints()
    
  • void getChars (int srcBegin, int srcEnd, char[] dst, int dstBegin): En este método, los caracteres se copian de esta secuencia en la matriz de caracteres de destino dst.
    Sintaxis:
    public void getChars(int srcBegin,
                         int srcEnd,
                         char[] dst,
                         int dstBegin)
    
  • int indexOf (String str): Este método devuelve el índice dentro de esta cadena de la primera aparición de la subcadena especificada.
    Sintaxis:
    public int indexOf(String str)
    
    public int indexOf(String str,
                       int fromIndex)
    
  • int lastIndexOf (String str): Este método devuelve el índice dentro de esta cadena de la última aparición de la subcadena especificada.
    Sintaxis:
    public int lastIndexOf(String str)
    
    public int lastIndexOf(String str,
                           int fromIndex)
    
  • int offsetByCodePoints (int índice, int codePointOffset): Este método devuelve el índice dentro de esta secuencia que se desplaza del índice dado por los puntos de código codePointOffset.
    Sintaxis:
    public int offsetByCodePoints(int index,
                                  int codePointOffset) 
    
  • void setCharAt (int index, char ch): En este método, el carácter en el índice especificado se establece en ch.
    Sintaxis:
    public void setCharAt(int index,
                          char ch)
    
  • void setLength (int newLength): Este método establece la longitud de la secuencia de caracteres.
    Sintaxis:
    public void setLength(int newLength)
    
  • SubSequence CharSequence (int inicio, int fin): Este método devuelve una nueva secuencia de caracteres que es una subsecuencia de esta secuencia.
    Sintaxis:
    public CharSequence subSequence(int start,
                                    int end)
    
  • Subcadena de cadena (inicio int): Este método devuelve una nueva cadena que contiene una subsecuencia de caracteres contenidos actualmente en esta secuencia de caracteres.
    Sintaxis:
    public String substring(int start)
    
    public String substring(int start,
                            int end)
    
  • Cadena toString (): Este método devuelve una cadena que representa los datos en esta secuencia.
    Sintaxis:
    public String toString()
    
  • void trimToSize (): Este método intenta reducir el almacenamiento utilizado para la secuencia de caracteres.
    Sintaxis:
    public void trimToSize()
    

Algunos datos interesantes:

  1. java.lang.StringBuffer extiende (o hereda) la clase Object.
  1. Todas las interfaces implementadas de la clase StringBuffer: serializable, appendable, CharSequence.
  1. La clase final pública StringBuffer extiende los implementos de objetos Serializable, CharSequence, Appendable
  1. Los búferes de cadena son seguros para su uso por varios subprocesos. Los métodos se pueden sincronizar siempre que sea necesario para que todas las operaciones en cualquier instancia particular se comporten como si ocurrieran en algún orden en serie.
  1. Siempre que ocurre una operación que involucra una secuencia fuente (como agregar o insertar desde una secuencia fuente), esta clase se sincroniza solo en el búfer de cadena que realiza la operación, no en la fuente.
  1. Hereda algunos de los métodos de la clase Object que son clonar, igualar, finalizar, obtener clase, código hash, notificar, notificar a todos.

StringBuilder: J2SE 5 agrega una nueva clase de cadena a las ya poderosas capacidades de manejo de cadenas de Java. Esta nueva clase se llama StringBuilder. Es idéntico a StringBuffer excepto por una diferencia importante: no está sincronizado, lo que significa que no es seguro para subprocesos. La ventaja de StringBuilder es un rendimiento más rápido. Sin embargo, en los casos en los que está utilizando subprocesos múltiples, debe utilizar StringBuffer en lugar de StringBuilder.

Deja una respuesta

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