La clase Java StringBuffer se utiliza para crear objetos String mutables (modificables). La clase StringBuffer en Java es la misma que la clase String excepto que es mutable, es decir, se puede cambiar.
Nota: La clase Java StringBuffer es segura para subprocesos, es decir, varios subprocesos no pueden acceder a ella simultáneamente. Por lo que es seguro y dará como resultado un pedido.
Constructores importantes de la clase StringBuffer
Constructor | Descripción |
---|---|
StringBuffer() | Crea un buffer de cadena vacío con una capacidad inicial de 16. |
StringBuffer(cadena cadena) | Crea un búfer de cadena con la cadena especificada. |
StringBuffer (capacidad interna) | Crea un búfer de cadena vacío con la capacidad especificada como longitud. |
Métodos importantes de la clase StringBuffer
Modificador y tipo | Método | Descripción |
---|---|---|
StringBuffer público sincronizado | añadir(cadenas) | Se utiliza para agregar la cadena especificada con esta cadena. El método append() está sobrecargado como append(char), append(boolean), append(int), append(float), append(double), etc. |
StringBuffer público sincronizado | insertar (desplazamiento int, cadena s) | Se utiliza para insertar la cadena especificada con esta cadena en la posición especificada. El método insert() está sobrecargado como insert(int, char), insert(int, boolean), insert(int, int), insert(int, float), insert(int, double), etc. |
StringBuffer público sincronizado | reemplazar (int índice inicial, int índice final, cadena cadena) | Se utiliza para reemplazar la cadena de startIndex y endIndex especificados. |
StringBuffer público sincronizado | eliminar (int índice inicial, int índice final) | Se utiliza para eliminar la cadena de startIndex y endIndex especificados. |
StringBuffer público sincronizado | contrarrestar() | se utiliza para invertir la cadena. |
público internacional | capacidad() | Se utiliza para devolver la capacidad actual. |
vacío público | asegurarCapacidad(int capacidad mínima) | Se utiliza para garantizar que la capacidad sea al menos igual al mínimo dado. |
carácter público | charAt(índice int) | Se utiliza para devolver el carácter a la posición especificada. |
público internacional | longitud() | Se utiliza para devolver la longitud de la cadena, es decir, el número total de caracteres. |
cadena pública | subcadena (int comenzar índice) | Se utiliza para devolver la subcadena del índice de inicio especificado. |
cadena pública | subcadena(int índicecomenzar, int índicefinal) | Se utiliza para devolver la subcadena del beginIndex y endIndex especificados. |
¿Qué es una cadena mutable?
Una cadena que se puede modificar o cambiar se conoce como cadena mutable. Las clases StringBuffer y StringBuilder se utilizan para crear cadenas mutables.
1) Método append() de la clase StringBuffer
El método append() concatena el argumento dado con esta Cadena.
StringBufferExample.java
class StringBufferExample{ public static void main(String args[]){ StringBuffer sb=new StringBuffer('Hello '); sb.append('Java');//now original string is changed System.out.println(sb);//prints Hello Java } }
Producción:
Hello Java
2) Método StringBuffer insert()
El método insert() inserta la cadena dada con esta cadena en la posición dada.
StringBufferExample2.java
class StringBufferExample2{ public static void main(String args[]){ StringBuffer sb=new StringBuffer('Hello '); sb.insert(1,'Java');//now original string is changed System.out.println(sb);//prints HJavaello } }
Producción:
HJavaello
3) Método StringBuffer reemplazar()
El método replace() reemplaza la cadena dada a partir del índice de inicio y del índice de finalización especificados.
StringBufferExample3.java
class StringBufferExample3{ public static void main(String args[]){ StringBuffer sb=new StringBuffer('Hello'); sb.replace(1,3,'Java'); System.out.println(sb);//prints HJavalo } }
Producción:
HJavalo
4) Método StringBuffer eliminar()
El método eliminar () de la clase StringBuffer elimina la cadena del índice inicial especificado al índice final.
StringBufferExample4.java
class StringBufferExample4{ public static void main(String args[]){ StringBuffer sb=new StringBuffer('Hello'); sb.delete(1,3); System.out.println(sb);//prints Hlo } }
Producción:
Hlo
5) Método StringBuffer inverso()
El método reverse() de la clase StringBuilder invierte la cadena actual.
StringBufferExample5.java
class StringBufferExample5{ public static void main(String args[]){ StringBuffer sb=new StringBuffer('Hello'); sb.reverse(); System.out.println(sb);//prints olleH } }
Producción:
olleH
6) Método StringBuffer capacidad()
El método capacidad() de la clase StringBuffer devuelve la capacidad actual del búfer. La capacidad predeterminada del búfer es 16. Si el número de caracteres aumenta con respecto a su capacidad actual, aumenta la capacidad en (capacidad anterior*2)+2. Por ejemplo, si su capacidad actual es 16, será (16*2)+2=34.
StringBufferExample6.java
class StringBufferExample6{ public static void main(String args[]){ StringBuffer sb=new StringBuffer(); System.out.println(sb.capacity());//default 16 sb.append('Hello'); System.out.println(sb.capacity());//now 16 sb.append('java is my favourite language'); System.out.println(sb.capacity());//now (16*2)+2=34 i.e (oldcapacity*2)+2 } }
Producción:
16 16 34
7) Método StringBuffer asegurarCapacity()
El método sureCapacity() de la clase StringBuffer garantiza que la capacidad dada sea la mínima de la capacidad actual. Si es mayor que la capacidad actual, aumenta la capacidad en (capacidad anterior*2)+2. Por ejemplo, si su capacidad actual es 16, será (16*2)+2=34.
StringBufferExample7.java
class StringBufferExample7{ public static void main(String args[]){ StringBuffer sb=new StringBuffer(); System.out.println(sb.capacity());//default 16 sb.append('Hello'); System.out.println(sb.capacity());//now 16 sb.append('java is my favourite language'); System.out.println(sb.capacity());//now (16*2)+2=34 i.e (oldcapacity*2)+2 sb.ensureCapacity(10);//now no change System.out.println(sb.capacity());//now 34 sb.ensureCapacity(50);//now (34*2)+2 System.out.println(sb.capacity());//now 70 } }
Producción:
16 16 34 34 70