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