0% encontró este documento útil (0 votos)
117 vistas4 páginas

StringBuilder en Java: Uso y Ejemplos

Este documento describe las clases String, StringBuilder y StringBuffer en Java. StringBuilder es más eficiente que StringBuffer para un solo hilo, mientras que StringBuffer es adecuado para varios hilos. También explica los constructores y métodos de StringBuilder, como append(), insert(), length(), entre otros. Finalmente incluye un ejemplo de uso de StringBuilder para agregar puntos de miles a un número.

Cargado por

Empalierkunta
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
117 vistas4 páginas

StringBuilder en Java: Uso y Ejemplos

Este documento describe las clases String, StringBuilder y StringBuffer en Java. StringBuilder es más eficiente que StringBuffer para un solo hilo, mientras que StringBuffer es adecuado para varios hilos. También explica los constructores y métodos de StringBuilder, como append(), insert(), length(), entre otros. Finalmente incluye un ejemplo de uso de StringBuilder para agregar puntos de miles a un número.

Cargado por

Empalierkunta
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

UNIDAD 8: TIPOS ENUMERADOS. ArrayList. LinkedList.

Java StringBuilder - StringBuffer

La clase String es una clase no modificable. Esto quiere decir que cuando se
modifica un String se crea un nuevo objeto String modificado a partir del
original y el recolector de basura es el encargado de eliminar de la memoria
el String original.

Java proporciona la clase StringBuffer y a partir de Java 5 la clase


StringBuilder para trabajar con cadenas de caracteres sobre las que vamos
a realizar modificaciones frecuentes de su contenido.

La diferencia entre StringBuffer y StringBuilder es que los métodos de


StringBuffer están sincronizados y los de StringBuilder no lo están. Por este
motivo StringBuilder ofrece mejor rendimiento que StringBuffer y la
utilizaremos cuando la aplicación tenga un solo hilo de ejecución.

En general decidiremos cuando usar String, StringBuilder o StringBuffer


según lo siguiente:

- Usaremos String si la cadena de caracteres no va a cambiar.

- Usaremos StringBuilder si la cadena de caracteres puede cambiar y


solamente tenemos un hilo de ejecución.

- Usaremos StringBuffer si la cadena de caracteres puede cambiar y


tenemos varios hilos de ejecución.

En esta entrada utilizaremos StringBuilder teniendo en cuenta que todo lo


que se explica aquí es aplicable a StringBuffer.

Constructores de la Clase StringBuilder

Un objeto de tipo StringBuilder gestiona automáticamente su capacidad

– Se crea con una capacidad inicial.

– La capacidad se incrementa cuando es necesario.

La clase StringBuilder proporcionan varios constructores, algunos de ellos


son:

CONSTRUCTOR DESCRIPCIÓN

Crea un StringBuilder vacío.


StringBuilder ()
StringBuilder sb = new StringBuilder ();

Crea un StringBuilder vacío con capacidad para


StringBuilder(int n)
n caracteres.

6
UNIDAD 8: TIPOS ENUMERADOS. ArrayList. LinkedList.

Crea un StringBuilder y le asigna el contenido


del String s.
StringBuilder(String s);
String s = "ejemplo";

StringBuilder sb = new StringBuilder (s);

Métodos de la Clase StringBuilder

La clase StringBuilder proporcionan métodos para acceder y modificar la cadena de


caracteres. Algunos de ellos son:

MÉTODO DESCRIPCIÓN

length() Devuelve la longitud de la cadena

Añade X al final de la cadena. X puede ser de


append(X);
cualquier tipo

Inserta X en la posición indicada. X puede ser de


insert(posicion, X)
cualquier tipo.

Cambia el carácter que se encuentra en la posición


setCharAt(posicion, c)
indicada, por el carácter c.

Devuelve el carácter que se encuentra en la posición


charAt(posicion)
indicada.

Devuelve la posición de la primera aparición de


indexOf(‘caracter’)
carácter

Devuelve la posición de la última aparición de


lastIndexOf(‘caracter’)
carácter

Devuelve la subcadena (String) comprendida entre


substring(n1,n2) las posiciones n1 y n2 ambas incluidas. Si no se
especifica n2, devuelve desde n1 hasta el final.

Elimina los caracteres desde la posición inicio hasta


delete(inicio, fin)
fin.

reverse() Invierte el contenido de la cadena

toString() Devuelve el String equivalente.

Los puedes consultar todos en la API de Java:

[Link]
[Link]

7
UNIDAD 8: TIPOS ENUMERADOS. ArrayList. LinkedList.

Ejemplo de uso de la clase StringBuilder:

Vamos a escribir un método separarMiles que reciba un String que


representa un número entero y devuelva un String con el mismo número al
que se le añadirán los puntos separadores de millares.

Por ejemplo, si el método recibe el String "12345678" debe devolver el


String "12.345.678"

Este problema lo podemos resolver de varias formas. En este caso la idea


es darle la vuelta al número e insertar el primer punto en la cuarta posición
del String, el siguiente punto 4 posiciones más adelante el siguiente otras 4
posiciones más adelante .... hasta llegar al final del número. De esta forma
obtendremos grupos de 3 cifras separados por punto.

Finalmente le volvemos a dar la vuelta y ya lo tendremos.

Por ejemplo si el String es:

"12345678"

Primero le damos la vuelta:

"87654321"

Ahora tenemos que insertar un punto donde está el 5. Nos queda:

"876.54321"

Insertamos otro punto cuatro posiciones más adelante, donde está el 2:

"876.543.21"

Ahora intentaríamos insertar otro punto cuatro posiciones más adelante


pero como llegamos al final el proceso termina.

Si le damos la vuelta obtendremos el resultado:

"12.345.678"

/*

* Ejemplo de uso de StringBuilder

* Separador de millares

*/

package string8;

public class String8 {

8
UNIDAD 8: TIPOS ENUMERADOS. ArrayList. LinkedList.

public static void main(String[] args) {

String s = "1234567890";

s = separarMiles(s);

[Link](s);

public static String separarMiles(String s){

//creamos un StringBuilder a partir del String s

StringBuilder aux = new StringBuilder(s);

//le damos la vuelta

[Link]();

//variable que indica donde insertar el siguiente punto

int posicion = 3;

//mientras no lleguemos al final del número

while(posicion < [Link]()){

//insertamos un punto en la posición

[Link](posicion,'.');

//siguiente posición donde insertar

posicion+=4;

//le damos de nuevo la vuelta

[Link]();

//el StringBuilder se pasa a String y se devuelve

return [Link]();

También podría gustarte