Está en la página 1de 12

LA CLASE StringBuffer

Java posee gran capacidad para el manejo de cadenas dentro de sus clases
String y StringBuffer. Un objeto String representa una cadena alfanumrica
de un valor constante que no puede ser cambiada despus de haber sido
creada. Un objeto StringBuffer representa una cadena cuyo tamao puede
variar.
La clase StringBuffer dispone de muchos mtodos para modificar el
contenido de los objetos StringBuffer. Si el contenido de una cadena va a ser
modificado en un programa habr! que sacrificar el uso de objetos String en
beneficio de StringBuffer que aunque consumen m!s recursos del sistema
permiten ese tipo de manipulaciones.
"l estar la mayor#a de las caracter#sticas de los StringBuffers basadas en su
tamao variable se necesita un nuevo mtodo de creaci$n%
StringBuffer&'(
StringBuffer& int len '(
StringBuffer& String str '(
Se puede crear un StringBuffer vac#o de cualquier longitud y tambin se
puede utili)ar un String como punto de partida para un StringBuffer.
StringBuffer *os + ne, StringBuffer& -. '(
StringBuffer Uno + ne, StringBuffer& /0ola 1undo/ '(
Cambio de Tamao
2l cambio de tamao de un StringBuffer necesita varias funciones
espec#ficas para manipular el tamao de las cadenas%
int length&'( 33 4umero de 5aracteres
char char"t& int inde6 '( 33 7btener 5aracter
void get5hars& int srcBeginint src2ndchar dst89int dstBegin '(
String toString&'( 33 7btener contenido
void setLength& int ne,length '( 33 cambiar numero de 5aracteres
void set5har"t& int inde6char ch '(331odificar caracter en la posicion inde6
int capacity&'( 33 *evuelve capacidad
void ensure5apacity& int minimum '(33"segura la capacidad minima
void copy:henShared&'(
7bervar que una de las funciones devuelve una cadena constante normal de
tipo String. 2ste objeto se puede usar con cualquier funci$n String como por
ejemplo en las funciones de comparaci$n.
Modificacin del Contenido
;ara cambiar el contenido de un StringBuffer se pueden utili)ar dos
mtodos% append() e insert().
2n el ejemplo se ve el uso de estos dos mtodos%
class 5ad"gregar <
public static void main& String args89 ' <
String "+=abcdefghij>lmnopqrstuv,6y)=(
StringBuffer str + ne, StringBuffer&'(
int i(
for&i+.(i?".length&'(i@@'
str.append& ".char"t&i''(
System.out.println& str.toString&''(
A
A
2n este otro ejemplo se cambia el sentido de una cadena%
class 5adenaBnversa <
public static String cadenaBnversa&String fuente' <
int i(
StringBuffer destino + ne, StringBuffer&'(
for& i+fuente.length&'CD( i E+ .( iCC '
destino.append& fuente.char"t& i ' '(
return& destino.toString&' '(
A
public static void main& String args89 ' <
System.out.println& cadenaBnversa& /;rogramaci$n Java/ ''(
A
A
Las funciones que cambian el tamao son%
StringBuffer append& 7bject obj '(
StringBuffer append& String str '(
StringBuffer append& char str89 '(
StringBuffer append& char str89int offsetint len '(
StringBuffer append& boolean b '(
StringBuffer append& int i '(
StringBuffer append& long l '(
StringBuffer append& float f '(
StringBuffer append& double d '(
StringBuffer append& char ch '(
StringBuffer insert& int offset7bject obj '(
StringBuffer insert& int offsetString str '(
StringBuffer insert& int offsetchar str89 '(
StringBuffer insert& int offsetboolean b '(
StringBuffer insert& int offsetint i '(
StringBuffer insert& int offsetlong l '(
StringBuffer insert& int offsetfloat f '(
StringBuffer insert& int offsetdouble d '(
StringBuffer insert& int offsetchar ch '(
Operadores de Concatenacin
0ay que recordar que los operadores /+/ y /+=/ tambin se pueden aplicar a
cadenas. "mbos reali)an una concatenaci$n y est!n implementados con
objetos StringBuffer.
;or ejemplo la sentencia%
String s + /FGu/ @ / tal H/(
es interpretada por el compilador como%
String s + ne, StringBuffer&'.append& /FGu/ '.append& / tal H/ '.toString&'(
y se marcar#a el StringBuffer para borrarlo ya que el contenido pasa al objeto
String. Iambin la sentencia%
s @+ / por ah#J/(
ser#a interpretada por el sistema como%
String s +
ne, StringBuffer&'.append& s '.append& / por ah#J/ '.toString&'(
y volver#a a marcar para borrar el nuevo StringBuffer.
TALLER AHORCADO
1. 1enK Lile E 5lose :or>Space
-. 2s 4ecesario crear el archivo java%
Men File>New>File
a. 2n la casilla de te6to Name: coloque el nombre del programa con
e6tensi$n java' en este caso Juego1
b. 2n la 5asilla de Ie6to Location: 5%M o utilice el bot$n N y seleccione 5%
&5arpeta Oa#)'
c. ;ulse el Bot$n Finish
P. Se debe colocar los set de clases necesarios son%
import java.util.Q(
import java6.s,ing.Q(
*onde%
2l set util se toma la clase Ranom con el mtodo ne6tBnt&' que genera
nKmeros aleatorios enteros.
2l set swing para las cajas de dialogo de 2ntrada y 1ensajes
R. Se debe crear inicialmente la 5lase "horcado
class "horcado
<
String te6to89+</La flor es Bonita//La a)ucena es 0ermosa//2l clavel
representa la 1adre/A(
Oandom r+ne, Oandom&'(
int ma6+1ath.abs&r.ne6tBnt&'SP@.'(334umero aleatorio de . a P
String linea+ne, String&te6to8ma69.toUpper5ase&''(
StringBuffer S+ne, StringBuffer&'(
int icmn(
public "horcado&int >'
<
cm+.(
n+>(
for&i+.(i?linea.length&'(i@@'
S.append&/ /'( 33 Llenado de Blancos
A
public String buscar&char c'
<
boolean hay+false(
i+.(
,hile&i?linea.length&' TT iJ+CD'
<
i+linea.inde67f&ci'( 33 BKsqueda de un 5ar!cter a partir de una posici$n
if&iJ+CD'
<
S.set5har"t&ic'( 33 5olocar un character en la position
hay+true(
i@@(
A
A
if&Jhay'
cm@@(
return S.toString&'(
A
public int malas&'
<
return cm(
A
public boolean acabo&'
<
if&cm++n'
return true(
else
return false(
A
public boolean termino&'
<
String "+linea.trim&'(
String B+ne, String&S.toString&'.trim&''(
if&".equals&B''
return true(
else
return false(
A
A
U. "hora se debe colocar el public class JuegoD as#%
public class JuegoD
<
public static void main&String args89'
<
"horcado 5+ne, "horcado&U'(
char p(
do
<
p+5haracter.toUpper5ase&J7ption;ane.sho,Bnput*ialog&null/*igite Letra
/'.char"t&.''(
J7ption;ane.sho,1essage*ialog&null/5adena% /@5.buscar&p'.toString&'@/
Mn 1alas% /@5.malas&''(
A
,hile&J5.termino&' TT J5.acabo&''(
if&5.termino&''
J7ption;ane.sho,1essage*ialog&null/0a ganado.../'(
if&5.acabo&''
J7ption;ane.sho,1essage*ialog&null/0a perdido.../'(
System.e6it&.'(
A
A
V. 2l programa debe quedar as#%
import java.util.Q(
import java6.s,ing.Q(
class "horcado
<
String te6to89+</La flor es Bonita//La a)ucena es 0ermosa//2l clavel
representa la 1adre/A(
Oandom r+ne, Oandom&'(
int ma6+1ath.abs&r.ne6tBnt&'SP@.'(
String linea+ne, String&te6to8ma69.toUpper5ase&''(
StringBuffer S+ne, StringBuffer&'(
int icmn(
public "horcado&int >'
<
cm+.(
n+>(
for&i+.(i?linea.length&'(i@@'
S.append&/ /'(
A
public String buscar&char c'
<
boolean hay+false(
i+.(
,hile&i?linea.length&' TT iJ+CD'
<
i+linea.inde67f&ci'(
if&iJ+CD'
<
S.set5har"t&ic'(
hay+true(
i@@(
A
A
if&Jhay'
cm@@(
return S.toString&'(
A
public int malas&'
<
return cm(
A
public boolean acabo&'
<
if&cm++n'
return true(
else
return false(
A
public boolean termino&'
<
String "+linea.trim&'(
String B+ne, String&S.toString&'.trim&''(
if&".equals&B''
return true(
else
return false(
A
A
public class JuegoD
<
public static void main&String args89'
<
"horcado 5+ne, "horcado&U'(
char p(
do
<
p+5haracter.toUpper5ase&J7ption;ane.sho,Bnput*ialog&null/*igite Letra
/'.char"t&.''(
J7ption;ane.sho,1essage*ialog&null/5adena% /@5.buscar&p'.toString&'@/
Mn 1alas% /@5.malas&''(
A
,hile&J5.termino&' TT J5.acabo&''(
if&5.termino&''
J7ption;ane.sho,1essage*ialog&null/0a ganado.../'(
if&5.acabo&''
J7ption;ane.sho,1essage*ialog&null/0a perdido.../'(
System.e6it&.'(
A
A
W. ;ara compilar &Xerificaci$n de errores l6icos y sint!cticos'
Men Buil>!om"ile File
2n la Xentana Build 7utput se verifica e6istencia de errores. 2n este caso
no los hay.
Y. ;ara 2jecutar el ;rograma
Men Buil>#$ecute File
TALLER NUMERO ROMANO
1. 1enK Lile E 5lose :or>Space
-. 2s 4ecesario crear el archivo java%
Men File>New>File
a. 2n la casilla de te6to Name: coloque el nombre del programa con
e6tensi$n java' en este caso Roma
b. 2n la 5asilla de Ie6to Location: 5%M o utilice el bot$n N y seleccione 5%
&5arpeta Oa#)'
c. ;ulse el Bot$n Finish

P. Se debe colocar los set de clases necesarios son%
import java6.s,ing.Q(
*onde%
2l set swing para las cajas de dialogo de 2ntrada y 1ensajes
R. Se debe crear inicialmente la 5lase Oomano
class Oomano
<
char unidad89+<ZBZZ[ZZ5ZZ1ZA(
char quinto89+<ZXZZLZZ*ZA(
int digito89+ne, int8R9(
int ijdominio(
public String pasar&int valor'
<
StringBuffer linea+ne, StringBuffer&'(
dominio+valor(
for&i+.(i?R(i@@'
<
digito8i9+dominioSD.(
dominio3+D.(
A
for&i+P(iE+.(iCC'
s,itch&digito8i9'
<
case R%
linea.append&unidad8i9'(linea.append&quinto8i9'(
brea>(
case \%
linea.append&unidad8i9'(linea.append&unidad8i@D9'(
brea>(
case .%brea>(
default%
if&digito8i9E+U'
linea.append&quinto8i9'(
for&j+D(j?+&digito8i9SU'(j@@'
linea.append&unidad8i9'(
A
return linea.toString&'(
A
A
U. "hora se debe colocar el public class Ooma as#%
public class Ooma
<
public static void main&String "rgs89'
<
StringBuffer 4+ne, StringBuffer&'(
Oomano "+ne, Oomano&'(
int r(
String s(
do
<
r+Bnteger.parseBnt&J7ption;ane.sho,Bnput*ialog&null/*igite 4umero DN
PY\\/''(
A
,hile&r?. ]] rEPY\\'(
J7ption;ane.sho,1essage*ialog&null/4umero% /@r@/ es%
/@".pasar&r'.toString&''(
A
A
V. 2l programa debe quedar as#%
import java.lang.Q(
import java6.s,ing.Q(
class Oomano
<
char unidad89+<ZBZZ[ZZ5ZZ1ZA(
char quinto89+<ZXZZLZZ*ZA(
int digito89+ne, int8R9(
int ijdominio(
public String pasar&int valor'
<
StringBuffer linea+ne, StringBuffer&'(
dominio+valor(
for&i+.(i?R(i@@'
<
digito8i9+dominioSD.(
dominio3+D.(
A
for&i+P(iE+.(iCC'
s,itch&digito8i9'
<
case R%
linea.append&unidad8i9'(linea.append&quinto8i9'(
brea>(
case \%
linea.append&unidad8i9'(linea.append&unidad8i@D9'(
brea>(
case .%brea>(
default%
if&digito8i9E+U'
linea.append&quinto8i9'(
for&j+D(j?+&digito8i9SU'(j@@'
linea.append&unidad8i9'(
A
return linea.toString&'(
A
A
public class Ooma
<
public static void main&String "rgs89'
<
StringBuffer 4+ne, StringBuffer&'(
Oomano "+ne, Oomano&'(
int r(
String s(
do
<
r+Bnteger.parseBnt&J7ption;ane.sho,Bnput*ialog&null/*igite 4umero/''(
A
,hile&r?. ]] rEPY\\'(
J7ption;ane.sho,1essage*ialog&null/4umero% /@r@/ es%
/@".pasar&r'.toString&''(
A
A
W. ;ara compilar &Xerificaci$n de errores l6icos y sint!cticos'
Men Buil>!om"ile File
2n la Xentana Build 7utput se verifica e6istencia de errores. 2n este caso
no los hay.
Y. ;ara 2jecutar el ;rograma
Men Buil>#$ecute File
#J#R!%!%&S ' R#'L%('R
D. *ada una cadena&solo letras y espacios en blanco' convertir a una
cadena de Iitulo &Ioda palabra debe iniciar con Letra 1ayKscula y las
dem!s minKsculas'
-. Leer un 5$digo y 4ombre de "lumno por teclado y as# generar una
cadena de c$digos y nombres separados por un espacio en blanco
P. *ada una serie de nKmeros&D...PY\\' generar dos cadenas con el
nKmero ordinal y otra en nKmero romano separados por espacios en
blanco.

También podría gustarte