1316

Capítulo 30 Cadenas, caracteres y expresiones regulares

concatena a  

"hola"

"BC"

 y 

22

. La concatenación se realiza de la siguiente manera:

new

 StringBuilder().append( 

"hola"

 ).append( 

"BC"

 ).append( 

22

 ).toString();

Primero, Java crea un objeto 

StringBuilder

 vacío y después anexa a este objeto 

StringBuffer

 las cadenas 

"hola"

"BC"

 y el entero 

22

. A continuación, el método 

toString

 de 

StringBuilder

 convierte el objeto 

StringBuilder

 en un objeto 

String

 que se asigna al objeto 

String

 

s

. La instrucción

s += 

"!"

;

se ejecuta de la siguiente manera:

s = 

new

 StringBuilder().append( s ).append( 

"!"

 ).toString();

Primero, Java crea un objeto 

StringBuilder

 vacío y después anexa a ese objeto 

StringBuilder

 el conteni-

do actual de 

s

, seguido por 

"!"

. A continuación, el método 

toString

 de 

StringBuilder

 convierte el objeto 

StringBuilder

 en una representación de cadena, y el resultado se asigna a 

s

.

30.4.5 Métodos de inserción y eliminación de 

StringBuilder

La clase 

StringBuilder

 proporciona métodos 

insert

 sobrecargados para permitir que se inserten valores de 

diversos tipos en cualquier posición de un objeto 

StringBuilder

. Se proporcionan versiones para cada uno 

de los tipos primitivos, y para arreglos de caracteres, objetos 

String

Object

 y 

CharSequence

. Cada uno de 

los métodos toma su segundo argumento, lo convierte en una cadena y la inserta justo antes del índice especifi -
cado por el primer argumento. El primer argumento debe ser mayor o igual que 

0

, y menor que la longitud del 

objeto 

StringBuilder

; de no ser así, se produce una excepción 

StringIndexOutOfBoundsException

. La clase 

StringBuilder

 también proporciona métodos 

delete

 y 

deleteCharAt

 para eliminar caracteres en cualquier 

posición de un objeto 

StringBuilder

. El método 

delete

 recibe dos argumentos: el índice inicial y el índice 

que se encuentra una posición más allá del último de los caracteres que se van a eliminar. Se eliminan todos los 
caracteres que empiezan en el índice inicial hasta, pero sin incluir al índice fi nal. El método 

deleteCharAt

 recibe 

un argumento: el índice del carácter a eliminar. El uso de índices inválidos hace que ambos métodos lancen una 
excepción 

StringIndexOutOfBoundsException

. Los métodos 

insert

delete

 y 

deleteCharAt

 se muestran 

en la fi gura 30.14.

 1 

// Fig. 30.14: StringBuilderInsert.java

 2 

// Métodos insert, delete y deleteCharAt de StringBuilder

3

 4 

public class

 StringBuilderInsert 

 5 

{

 6  

public static void

 main( String args[] )

 7  

{

 8   

Object refObjeto = 

"hola"

;

 9   

String cadena = 

"adios"

;

 10  

 

char

 arregloChars[] = { 

'a'

,

'b'

,

'c'

,

'd'

,

'e'

,

'f'

 };

 11  

 

boolean

 valorBoolean = 

true

;

 12  

 

char

 valorChar = 

'K'

;

 13  

 

int

 valorInt = 

7

;

 14  

 

long

 valorLong = 

10000000

;

 15  

 

float

 valorFloat = 

2.5f

;

// el sufijo f indica que 2.5 es un float

16   

double

 valorDouble = 

33.333

;

 17 
 18  

 

StringBuilder bufer = 

new

 StringBuilder();

 19 
 20  

 

bufer.insert( 0, refObjeto );

 21  

 

bufer.insert( 0, 

"  "

 ); 

// cada uno de estos contiene nueva línea

22   

bufer.insert( 0, cadena );

 23  

 

bufer.insert( 0, 

"  " 

);

Figura 30.14

  |  Métodos 

insert

 y 

delete

de

StringBuilder

. (Parte 1 de 2).

30_MAQ_CAP_30_DEITEL.indd1316

5/8/084:22:39PM