Clases StringBuffer y StringBuilder de Java

Cuando necesites modificar cadenas, debes usar las clases StringBuffer y StringBuilder.

A diferencia de la clase String, los objetos de las clases StringBuffer y StringBuilder pueden modificarse múltiples veces sin generar nuevos objetos sin usar.

Al usar la clase StringBuffer, cada operación se realiza sobre el propio objeto StringBuffer en lugar de generar un objeto nuevo, por lo que si necesitas modificar cadenas, se recomienda usar StringBuffer.

La clase StringBuilder se introdujo en Java 5. La mayor diferencia con StringBuffer es que los métodos de StringBuilder no son seguros para subprocesos (no permiten acceso sincronizado).

Dado que StringBuilder tiene ventaja de velocidad sobre StringBuffer, se recomienda usar StringBuilder en la mayoría de los casos.

Ejemplo

public class EjemploTest{ public static void main(String[] args){ StringBuilder sb = new StringBuilder(10); sb.append("Ejemplo.."); System.out.println(sb); sb.append("!"); System.out.println(sb); sb.insert(8, "Java"); System.out.println(sb); sb.delete(5,8); System.out.println(sb); } }

El resultado de compilar y ejecutar el ejemplo anterior es el siguiente:

Ejemplo..
Ejemplo..!
Ejemplo..Java!
RunooJava!

Sin embargo, cuando la aplicación requiere seguridad para subprocesos, se debe usar la clase StringBuffer.

Código del archivo Test.java:

public class Test{ public static void main(String[] args){ StringBuffer sBuffer = new StringBuffer("Sitio web oficial de Ejemplo:"); sBuffer.append("www"); sBuffer.append(".ejemplo"); sBuffer.append(".com"); System.out.println(sBuffer); } }

El resultado de compilar y ejecutar el ejemplo anterior es el siguiente:

Ejemplo官网:www.example.com

Métodos de StringBuffer

Los siguientes son los principales métodos admitidos por la clase StringBuffer:

N.º Descripción del método
1 public StringBuffer append(String s)
Agrega la cadena especificada a esta secuencia de caracteres.
2 public StringBuffer reverse()
Reemplaza esta secuencia de caracteres por su forma invertida.
3 public delete(int start, int end)
Elimina los caracteres de la subcadena de esta secuencia.
4 public insert(int offset, int i)
va aintInserta la representación de cadena del argumento en esta secuencia.
5 insert(int offset, String str)
va astrInserta la cadena del argumento en esta secuencia.
6 replace(int start, int end, String str)
Usando elStringString dado, reemplaza los caracteres de la subcadena de esta secuencia.

La siguiente lista muestra otros métodos de uso común de la clase StringBuffer:

N.º Descripción del método
1 int capacity()
Devuelve la capacidad actual.
2 char charAt(int index)
Devuelve el valor de tipocharchar en el índice especificado de esta secuencia.
3 void ensureCapacity(int minimumCapacity)
Asegura que la capacidad sea al menos igual al mínimo especificado.
4 void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
Copia caracteres de esta secuencia al array de caracteres de destino.dst。
5 int indexOf(String str)
Devuelve el índice de la primera aparición de la subcadena especificada en esta cadena.
6 int indexOf(String str, int fromIndex)
Devuelve el índice de la primera aparición de la subcadena especificada, comenzando desde el índice especificado.
7 int lastIndexOf(String str)
Devuelve el índice de la aparición más a la derecha de la subcadena especificada en esta cadena.
8 int lastIndexOf(String str, int fromIndex)
Devuelve la posición de la última aparición de la subcadena en el objeto String.
9 int length()
Devuelve la longitud (número de caracteres).
10 void setCharAt(int index, char ch)
Establece el carácter en el índice dado comoch。
11 void setLength(int newLength)
Establece la longitud de la secuencia de caracteres.
12 CharSequence subSequence(int start, int end)
Devuelve una nueva secuencia de caracteres que es una subsecuencia de esta secuencia.
13 String substring(int start)
Devuelve un nuevoStringString, que contiene la subsecuencia de caracteres actualmente contenida en esta secuencia de caracteres.
14 String substring(int start, int end)
Devuelve un nuevoStringString, que contiene la subsecuencia de caracteres actualmente contenida en esta secuencia.
15 String toString()
Devuelve la representación de cadena de los datos en esta secuencia.

Más contenido:

Otras extensiones