Вы находитесь на странице: 1из 6

Los objetos StringBuilder son como los objetos String, excepto que estos pueden ser modificados.

Internamente, estos objetos se tratan como arreglos de longitud variable que contienen una secuencia de caracteres. En cualquier punto, la longitud y el contenido de la secuencia pueden cambiarse a travs de invocaciones de mtodos. Las cadenas deberan usarse siempre a menos que los constructores de cadena ofrezcan una ventaja en trminos de cdigo ms simple (vea el programa de muestra al final de esta leccin) o mejor rendimiento. Por ejemplo, si necesita concatenar un nmero grande de cadenas, aadir a un objeto StringBuilder es ms eficiente. Length and Capacity La clase StringBuilder, al igual que la clase String, tiene un mtodo de longitud length() que devuelve la longitud de la secuiencia de caracteres en el constructor. A diferencia de las cadenas, cada constructor de cadena tambin tiene una capacidad, el nmero de espacios de caracteres que se han reservado. La capacidad, que se regresa por el mtodo capacity(), siempre es mayor o igual que la longitud (usualmente mayor) y automticamente se expandir segn sea necesario para acomodarse a adiciones al constructor de cadena.
Constructores de StringBuilder Constructor Descripcin Crea un constructor de cadena vaco con una capacidad de 16 (16 elementos vacos). Construye un constructor de cadena conteniendo los mismos caracteres que laCharSequence especificada, adems de 16 elementos vacos adicionales al final de CharSequence.

StringBuilder()

StringBuilder(CharSequence cs)

StringBuilder(int initCapacity)

Crea un constructor vaco de cadena con la capacidad inicial especificada. Crea un constructor de cadena cuyo valor se inicialice por la cadena especificada, adems de 16 elementos vacos al final de la cadena.

StringBuilder(String s)

Por ejemplo, el siguiente cdigo


StringBuilder sb = new StringBuilder(); // crea un constructor vaco, la capacidad es 16 sb.append("Greetings"); // agrega 9 caracteres de cadena al principio

producir un constructor de cadena con una longitud de 9 y una capacidad de 16:

La clase StringBuilder tiene algunos mtodos relacionados a la longitud y capacidad que la clase String no tiene:
Mtodos de Longitud y Capacidad Mtodo Descripcin Establece la longitud de la secuencia de caracteres. Si newLength es menos quelength(), los ltimos caracteres en la secuencia de caracteres se truncan. SinewLength es mayor que length(), los caracteres nulos se agregan al final de la secuencia de caracteres. Asegura que la capacidad es al menos igual al mnimo especificado.

void setLength(int newLength)

void ensureCapacity(int minCapacity)

Un nmero de operaciones (por ejemplo, append(), insert(), o setLength()) pueden incrementar la longitud de la secuencia de caracteres en el constructor de cadena de modo que la longitud resultante length() sea mayor que la capacidad actual capacity(). Cuando esto pasa, la capacidad se incrementa automticamente. Operaciones de StringBuilder Las operaciones principales sobre un StringBuilder que no estn disponibles en String son los mtodos append() y insert(), los cuales se sobrecargan para aceptar datos de cualquier tipo. Cada uno convierte su argumento a una cadena y luego aade o inserta los caracteres de esa cadena a la secuencia de caracteres en el constructor de cadenas. El mtodo append siempre agrega estos caracteres al final de la secuencia existente de caracteres, miemtras que el mtodo insert agrega los caracteres en un punto especificado. Aqu est un nmero de los mtodos de la clase StringBuilder.
Various Mtodos de StringBuilder Mtodo
StringBuilder append(boolean b) StringBuilder append(char c) StringBuilder append(char[] str) StringBuilder append(char[] str, int offset, int len) StringBuilder append(double d) StringBuilder append(float f) StringBuilder append(int i) StringBuilder append(long lng) StringBuilder append(Object obj) StringBuilder append(String s) StringBuilder delete(int start, int end) StringBuilder deleteCharAt(int index) StringBuilder insert(int offset, boolean b)

Descripcin

Aade el argumento a este constructor de cadena. Los datos se convierten a una cadena antes de que la operacin de aadido tome lugar.

Elimina el o los caracteres especificados en este constructor de cadena.

Inserta el segundo argumento dentro del

StringBuilder insert(int offset, char c) StringBuilder insert(int offset, char[] str) StringBuilder insert(int index, char[] str, int offset, int len) StringBuilder insert(int offset, double d) StringBuilder insert(int offset, float f) StringBuilder insert(int offset, int i) StringBuilder insert(int offset, long lng) StringBuilder insert(int offset, Object obj) StringBuilder insert(int offset, String s) StringBuilder replace(int start, int end, String s) void setCharAt(int index, char c)

constructor de cadena. El primer argumento de cadena indica que el ndice antes del que el dato ha de ser insertado. Los datos se convierten a una cadena antes de que la operacin de insercin tome lugar.

Reemplaza el o los caracteres especificados en este constructor de cadena.

StringBuilder reverse()

Revierte la secuencia de caracteres en este constructor de cadena. Devuelve una cadena que contiene la secuencia de caracteres en el constructor.

String toString()

Nota: Puede usar cualquier mtodo de String en un objeto StringBuilder al convertir primero el constructor de cadena a una cadena con el mtodotoString() de la clase StringBuilder. Luego convertir la cadena de regreso en un constructor de cadena usando el constructorStringBuilder(String str).

Un Ejemplo

El programa StringDemo que fue listado en la seccin titulada "Cadenas" es un ejemplo de un programa que sera ms eficiente si un StringBuilder fuera usado en lugar de un String.
StringDemo revierte

un palndrome. Aqu, una vez ms, este es el cdigo:

public class StringDemo { public static void main(String[] args) { String palindrome = "Dot saw I was Tod"; int len = palindrome.length(); char[] tempCharArray = new char[len]; char[] charArray = new char[len];

// pone la cadena original en un arreglo de chars for (int i = 0; i < len; i++) { tempCharArray[i] = palindrome.charAt(i); }

// revierte el arreglo de caracteres for (int j = 0; j < len; j++) { charArray[j] = tempCharArray[len - 1 - j]; }

String reversePalindrome =

new String(charArray);

System.out.println(reversePalindrome); } }

Correr el programa produce esta salida:


doT saw I was toD

Para llevar a cabo la reversin de cadenas, el programa convierte la cadena a un arreglo de caracteres (primer bucle fo), revierte el arreglo en un segundo arreglo (segundo bucle for), y luego lo convierte de regreso a una cadena. Si convierte la cadena palindrome a un constructor de cadena, puede usar el mtodo reverse() en la clase StringBuilder. Esto hace el cdigo ms simple y ms fcil de leer:
public class StringBuilderDemo { public static void main(String[] args) { String palindrome = "Dot saw I was Tod";

StringBuilder sb = new StringBuilder(palindrome);

sb.reverse();

// revertirlo

System.out.println(sb); } }

Correr este programa produce la misma salida:


doT saw I was toD

Note que println() imprime un constructor de cadena, como en:


System.out.println(sb);

porque sb.toString() se llama implcitamente, como lo es con cualquier otro objeto en una invocacin println().

Nota: Tambin hay una clase StringBuffer que es exactamente lo mismo que la clase StringBuilder, excepto que es segura para hileras en virtud de tener sus mtodos sincronizados. Las hileras sern discutidas en la leccin sobre concurrencia.

Вам также может понравиться