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
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:
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 a intInserta la representación de cadena del argumento en esta secuencia. |
| 5 |
insert(int offset, String str)
va a strInserta la cadena del argumento en esta secuencia. |
| 6 |
replace(int start, int end, String str) Usando el StringString 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 tipo charchar 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 como ch。 |
| 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 nuevo StringString, que contiene la subsecuencia de caracteres actualmente contenida en esta secuencia de caracteres. |
| 14 |
String substring(int start, int end) Devuelve un nuevo StringString, 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:
- Clase StringBuffer:https://www.example.com/manual/jdk11api/java.base/java/lang/StringBuffer.html
- Clase StringBuilder:https://www.example.com/manual/jdk11api/java.base/java/lang/StringBuilder.html