You are on page 1of 30

MANEJO AVANZADO DE

CADENAS DE TEXTO
String

Introduccin
En java existe una gran variedad en las que se pueden
emplear el uso de cadenas.
En
esta
parte
veremos
lasmsusadas
o
las
quemspodran ser necesarias en el desarrollo de
unproyecto.

La clase String(Cadena)
Los objetos String son secuencias inmutables de caracteres Unicode.
Sirve para manejar cadenas de texto dentro de un programa de java.
Un objeto String representa una cadena alfanumrica de un valor
constante que no puede ser cambiada despus de haber sido creada.
Operaciones para crear una nueva cadena (String):
concat, replace, substring, toLowerCase, toUpperCase, y
trim.
Operaciones de bsqueda: endsWith, startsWith, indexOf y
lastIndexOf.
Comparisiones: equals, equalsIgnoreCase, y compareTo.

Ejemplos de los tipos de operaciones


que se pueden hacer con los String.
CONCATENACIN DE CADENAS
Para poder concatenar o juntar cadenas lo podemos realizar de la
siguiente manera:
Mediante el Smbolo + :
String Palabra1="Kevin ";
String Palabra2="Arnold ";
System.out.println(Palabra1+Palabra2); Salida: Kevin Arnold
Mediante el mtodo concat :
System.out.println(Palabra1.concat(Palabra2)); Salida: Kevin Arnold

Ejemplos de los tipos de operaciones


que se pueden hacer con los String.
LONGITUD DE UNA CADENA
La longitud de una cadena podemos obtener con el mtodo length()
de la siguiente manera:
String Palabra3 = "Midiendo mi longitud";
System.out.println(Palabra3.length()); Salida: 20

Ejemplos de los tipos de operaciones


que se pueden hacer con los String.
CADENA A MAYSCULA O MINSCULA
-Si queremos convertir una cadena completa a minsculas hagamos
de la siguiente forma:
String Palabra3 = "Midiendo mi longitud";
System.out.println(Palabra3.toLowerCase());
-Para maysculas sera lo siguiente:
System.out.println(Palabra3.toUpperCase());

Ejemplos de los tipos de operaciones


que se pueden hacer con los String.
CARCTER POR INDICE charAt
Obtengamos el carcter de la posicin 7 considerando que las cadenas
empiezan desde la posicin 0
System.out.println(Palabra3.charAt(7));
NDICE POR CARCTER indexOf
Para saber qu posicin usa una letra podemos usar la siguiente funcin
considerando que retornara la posicin del primer carcter encontrado
con el valor que le pasemos
System.out.println(Palabra3.indexOf('e'));

Ejemplos de los tipos de operaciones


que se pueden hacer con los String.
Si pondramos una palabra completa en el valor enviado nos retornara
el ndice del primer carcter de la palabra encontrada, si lo hubiera.
Por ejemplo:
System.out.println(Palabra3.indexOf("longitud") );
Esto nos retornara 12 ya que en la Palabra3 tenemos la cadena
Midiendo mi longitud y la palabra longitud identifica el inicio del mismo

Ejemplos de los tipos de operaciones


que se pueden hacer con los String.
SUB CADENAS O SUBSTRING
Aqu veamos la forma de obtener cierta porcin de una cadena, por
ejemplo. Si quisiramos la palabra longitud de la cadena Palabra3 lo
obtendramos de la siguiente manera
System.out.println(Palabra3.substring(12, Palabra3.length()));
El primer valor dentro de substring es 12 ya que la palabra longitud
empieza en ese punto y luego se pasa el valor Palabra3.length lo cual
retornara la longitud de Palabra3 es decir hasta el final as obteniendo
la porcin que se desea obtener dara el mismo resultado si pondramos
System.out.println(Palabra3.substring(12, 20));

La clase StringBuffer
Java posee gran capacidad para el manejo de cadenas dentro de sus
clases String y StringBuffer.
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 ms recursos del sistema, permiten ese tipo de
manipulaciones

StringBuffer
CONSTRUCTORES:
-StringBuffer() - Construye un stringbuffer vaco y con
capacidad inicial de 16 caracteres.
-StringBuffer(int capacity) Construye un stringbuffer vaco
y con una capacidad inicial especificada por el argumento
de "length" caracteres.
-StringBuffer(String initialString) Construye un string que
representa la misma secuencia de caracteres que el string
de argumento. La capacidad inicial del stringbuffer es 16
caracteres ms el largo del string.

StringBuffer
PRINCIPALES METODOS DE MODIFICACION:
append.- Concatena al stringbuffer la representacin en strings
de su argumento.
capacity.- Retorna la capacidad del stringbuffer.
toString.- Convierte a String la representacin del stringbuffer.
reverse.- Invierte la secuencia de caracteres del stringbuffer.
setCharAt.- Reemplaza un carcter especificado por otro.
insert.- Inserta al stringbuffer la representacin en string del
argumento.

StringBuffer

Ejemplos

Crea un StringBuffer inicializado a un texto por defecto


StringBuffer str = new StringBuffer("Hola");
Le concatena otro texto, String
str.append(" Mundo");
Imprime en consola el resultado de la concatenacin
System.out.println(str);
Imprime la capacidad del StringBuffer str2
StringBuffer str2= new StringBuffer();
System.out.println(str2.capacity());
Le concatena otro texto a str2
str2.append("nevera");
System.out.println(str2);
Imprime el contenido de str2 en modo inverso, seria areven
System.out.println(str2.reverse());

La clase StringBuilder
StringBuilder es una clase que aparece con el JDK 5, y es
la clase recomendada para la concatenacin de String en
la mayora de los casos.
Su uso es idntico al StringBuffer (tienen el mismo API)
por lo resulta relativamente simple reemplazar a los
StringBuffer por StringBuilder.

StringBuilder
Los mtodos de StringBuilder no son sincronizados,
por lo que tiene mejor rendimiento que StringBuffer.
En general, la concatenacin de String ocurre con
variables locales a un mtodo, por lo que es seguro
usar StringBuilder en lugar de StringBuffer.
En mtodos que hacen uso intensivo de la
concatenacin, la diferente en rendimiento puede
ser importante.

StringBuilder
CONSTRUCTORES.

StringBuilder () : //Crea un StringBuilder vaco.


StringBuilder sb = new StringBuilder ();
StringBuilder(int n): //Crea un StringBuilder vaco con capacidad
para n caracteres.
StringBuilder(String s); //Crea un StringBuilder y le asigna el
contenido del String s.
String s = "ejemplo";
StringBuilder sb = new StringBuilder (s);

StringBuilder
PRINCIPALES METODOS DE MODIFICACION:
length() Devuelve la longitud de la cadena.
append(x); - Aade X al final de la cadena. X puede ser de
cualquier tipo.
reverse - Invierte el contenido de la cadena.
toString - Devuelve el String equivalente.
setCharAt(posicion, c) - Cambia el carcter que se encuentra
en la posicin indicada, por el carcter c.
Insert(posicion, x) - Inserta X en la posicin indicada. X puede
ser de cualquier tipo.

StringBuilder
delete(inicio, fin) Elimina los caracteres de la posicion inicial
hasta el fin.
indexOf(caracter) - Devuelve la posicin de la primera
aparicin de carcter.
lastIndexOf(caracter) Devuelve la posicin de la ltima
aparicin de carcter
substring(n1,n2) Devuelve la subcadena (String) comprendida
entre las posiciones n1 y n2 ambas incluidas. Si no se especifica
n2, devuelve desde n1 hasta el final.

StringBuilder

Ejemplo

CMO SE USA?
StringBuilder holamundoBuilder = new StringBuilder();
holamundoBuilder.append("Hola, ");
holamundoBuilder.append("mundo");
String holamundo = holamundoBuilder.toString();
System.out.println(holamundo);

La clase StringTokenizer
La clase StringTokenizer permite a una aplicacin dividir una
cadena en tokens.
El mtodo para dividir la cadena es mucho mas simple que el
usado por la clase StreamTokenizer.
Los mtodos de la clase StringTokenizer no distinguen entre
identificadores, nmeros y comillas, ni reconocen y se saltan los
comentarios.

StringTokenizer
Se incluye en el paquete java.util
Los tokens se separan mediante delimitadores.
Los delimitadores por defecto son:
espacio en blanco
tabulador \t
salto de lnea \n
retorno \r
avance de pgina \f
Un objeto StringTokenizer se construye a partir de un objeto String.
Para obtener los tokens del String podemos utilizar los mtodos
hasMoreTokens() y nextToken().
hasMoreTokens() - devuelve true si hay ms tokens que obtener
en la cadena.
nextToken() -devuelve un String con el siguiente token. Lanza una
excepcin del tipo NoSuchElementException si no hay ms tokens.

StringTokenizer
Ejemplo
String s = "blanco, rojo, verde y azul";
StringTokenizer st = new StringTokenizer(s);
while(st.hasMoreTokens()){
System.out.println(st.nextToken());}
La salida que se obtiene por pantalla es:
blanco,
rojo,
verde
y
azul
Se ha separado el " String s " en tokens separados por el delimitador por
defecto. En este caso el espacio en blanco.
Si lo representamos de forma grfica, el funcionamiento es el siguiente:
La instruccin StringTokenizer st = new StringTokenizer(s);
Produce lo siguiente:

StringTokenizer
Ejemplo
Se separa el String en tokens y el objeto st apunta al primero.
A continuacin: st.hasMoreTokens() comprueba si hay tokens
que extraer.
En este caso st apunta a un token por lo tanto hasMoreTokens()
devuelve true.
A continuacin: st.nextToken() obtiene el token al que apunta st
(blanco,) y avanza al siguiente.

StringTokenizer
Ejemplo
El ciclo while repite el proceso, cuando se alcanza el
ltimo
token y se avanza el siguiente la condicin del
while ser false.
Los delimitadores se pueden
especificar cuando se crea el
objeto StringTokenizer.
Por ejemplo para indicar que los delimitadores son la coma y el espacio
en blanco, la ejecucin del while anterior obtendra la salida:
Colores
Rojo
Verde
Y
Azul
La coma no aparece ya que se ha especificado como delimitador y los
delimitadores no aparecen.

StringTokenizer
El conjunto de delimitadores (los caracteres que separan los
tokens) pueden ser especificados de dos formas, al momento
de creacin o especificado para cada token.
Una instancia de StringTokenizer se comporta de una de las
dos formas, dependiendo si fue creado con la bandera
returnDelims con el valor true false:
-Si la bandera es false, los caracteres delimitadores sirven para
separar los tokens.
Un token es la secuencia mxima de caracteres consecutivos
que no son delimitadores.

StringTokenizer
Si la bandera es true, los caracteres delimitadores son
considerados ellos mismos a ser tokens.
De esta manera un token funciona de dos formas como un
carcter delimitador o una secuencia maxima de caracteres
consecutivos que no son delimitadores.

StringTokenizer
Un objeto StringTokenizer mantiene internamente la posicin
actual dentro de la cadena que es dividida. Algunas
operaciones avanzan esta posicin actual a lo largo de los
caracteres procesados.
Un token es regresado tomando una subcadena de la cadena
que fue usada para crear el objeto StringTokenizer.
El siguiente ejemplo es uno de los que usa el tokenizer.
StringTokenizer st = new StringTokenizer("Esta es una prueba);
while (st.hasMoreTokens()) {
System.out.println(st.nextToken()); }
imprime la siguiente salida: Esta

es
una
prueba

StringTokenizer
StringTokenizer es una clase legada que es mantenida por razones
de compatibilidad aunque su uso es disuadido en un nuevo cdigo.
Es recomendado que si alguien busca esta funcionalidad use el
mtodo split de String o el paquete java.util.regex package en lugar
de eso.
El siguiente ejemplo muestra como el mtodo String.split puede ser
usado para dividir una cadena en sus tokens bsicos.
int j = 0;
String linea = "elemento1 elemento2 elemento3;
String [ ] campos = linea.split("\\s+");
while(j<campos.length){
System.out.println(campos[j]);
j++;
}

StringTokenizer
Supongamos que tenemos una cadena de texto con elementos
separados por espacios, por ejemplo:
String cadena = "elemento1 elemento2 elemento3";
Una de las formas para hacerlo en Java es utilizar la clase
StringTokenizer, la cual dividir la cadena en Tokens (por
defecto dividir la cadena por espacios).
String linea = "elemento1 elemento2 elemento3";
StringTokenizer corte= new StringTokenizer(linea);
while(corte.hasMoreTokens()){
System.out.println(corte.nextToken());
}

Gracias por su atencin!!


Edna P. Gonzlez
Hugo Snchez
Julio C. Moreno

You might also like