Está en la página 1de 20

PRESENTACION AGRADECIMIENTO DEDICATORIA INTRODUCCION ENUNCIADO CLASES String String buffer String tokenizer character

3 ... 4 ..5 6 7-8 9-20

PRESENTACION
Seorita Docente del curso de Tecnologa de Programacin I de la Universidad Nacional de Trujillo. Es para nuestro grupo de exposicin una gran oportunidad de poder presentar y poner a vuestra consideracin el presente programa, que tiene como objetivo principal el conocer la gran importancia que tiene para los estudiantes de Ingeniera de sistemas conocer y saber como desarrollar un programa que los ayude a optimizar en nuestro trabajo para el futuro. Esperamos que el presente programa tenga la aceptacin respectiva por haber seguido con todos los recursos necesarios dados por la docente del curso.

Los Autores. 2

AGRADECIMIENTO

A la UNT, porque dentro de sus aulas se cultivan conocimientos de nuestro nivel acadmico que se requieren para nuestra formacin profesional.

A la seorita Yanet Vidal Melgarejo por su valorable dedicacin y conocimientos con el fin de forjar profesionales de xito.

DEDICATORIA

A nuestros amados padres quienes son la razn de nuestro esfuerzo, por su gran amor, dedicacin y enseanzas.

A Dios Padre, porque siempre esta a nuestro lado guiando nuestro camino, por brindarnos su amor divino, por haber permitido llegar a dar este gran paso en nuestras vidas y por bendecir nuestro trabajo.

INTRODUCCCION
El presente estudio tiene como propsito realizar la elaboracin y anlisis de un programa donde hace uso de las Caractersticas y mtodos de clases: String, StringBuffer, Character, StringTokenizer con el fin de poder emplear nuestro conocimiento de una manera lgica .

I. ENUNCIADO :
1. Describir las caractersticas y mtodos principales de las siguientes

clases: String, StringBuffer, Character, StringTokenizer. 2. Elaborar un informe con lo indicado en el punto 1.(En el silabo se encuentra definido el formato de presentacin del informe

Generar un proyecto en NetBeans que contenga la solucin de los siguientes enunciados .Cada solucin puede constar de una o varias clases que deben ubicarse en paquetes individuales 1. Escriba una aplicacin (una o ms clases) que utilice el mtodo compareTo de la clase String para comparar dos cadenas introducidas por el usuario. Muestre si la primera cadena es menor, igual o mayor que la segunda. 2. Escriba una aplicacin que utilice el mtodo regionMatches de la clase String para comparar dos cadenas introducidas por el usuario. El programa deber recibir tambin como entrada el nmero de caracteres a comparar y el ndice inicial de la comparacin. El programa deber indicar si las cadenas son iguales. Ignore si los caracteres estn en maysculas o en minsculas al momento de realizar la comparacin. 3. Escriba una aplicacin que codifique frases en espaol a frase en latn cerdo. El latn cerdo es una forma de lenguaje codificado. Existen muchas variaciones en los mtodos utilizados para formar frases en latn cerdo. Por cuestiones de simpleza, utilice el siguiente algoritmo: Para formar una frase en latn cerdo a partir de una frase en espaol, divida la frase en palabras con un objeto de la clase StringTokenizer. Para traducir cada palabra en espaol a una palabra en latn cerdo, coloque la primera letra de la palabra en espaol al final de la palabra, y agregue las letras ae. De esta forma, la palabra salta se convierte a altasae, la palabra el se convierte en leae y la palabra computadora se convierte en omputadoracae. Los espacios en blanco entre las palabras permanecen igual. Suponga que la frase en espaol consiste en palabras separadas por espacios en blanco, que no hay signos de puntuacin y que todas las palabras tienen dos o ms letras. El mtodo imprimirPalabraEnLatin deber mostrar cada palabra. Cada token devuelto de

nextToken se pasar al mtodo imprimirPalabraEnLatin para imprimir la palabra en latn cerdo. Permita al usuario introducir el enunciado.

4. Escriba una aplicacin que reciba como entrada un nmero telefnico como una cadena de la forma (555) 555-5555. El programa deber utilizar un objeto de la clase StringTokenizer para extraer el cdigo de rea como un token, los primeros tres dgitos del nmero telefnico como otro token y los ltimos cuatro dgitos del nmero telefnico como otro token. Los siete dgitos del nmero telefnico debern concatenarse en una cadena. El programa deber convertir la cadena del cdigo de rea en int (utilizando el mtodo parseInt) y deber convertir la cadena del nmero telefnico en long. Debern imprimirse tanto el cdigo de rea como el nmero telefnico. Recuerde que tendr que modificar los caracteres delimitadores durante el proceso de dividir la cadena en tokens. 5. Escriba una aplicacin que reciba como entrada una lnea de texto, que divida la lnea en tokens mediante un objeto de la clase StringTokenizer y que muestre los tokens en orden inverso. Use caracteres de espacio como delimitadores. 6. Escriba una aplicacin que permita al usuario ingresar cadenas de caracteres en un arreglo y luego ordene alfabticamente el arreglo, mostrando los resultados. 7. Escriba una aplicacin que reciba como entrada una lnea de texto y que lo imprima dos veces, una vez en letras maysculas y otra en letras minsculas. 8. Escriba una aplicacin que reciba como entrada varias lneas de texto y un carcter de bsqueda, y que utilice el mtodo indexOf de la clase String para determinar el nmero total de ocurrencias de ese carcter en el texto. 9. Escriba una aplicacin con base en el programa del ejercicio anterior (8), que reciba como entrada varias lneas de texto y utilice el mtodo indexOf de la clase String para determinar el nmero total de ocurrencias de cada letra del alfabeto en ese texto. Las letras mayscula y minscula deben contarse como una sola. Almacene los totales para cada letra en un arreglo e imprima los valores en formato tabular. 10. Escriba una aplicacin que lea una lnea de texto y un carcter, que divida la lnea en tokens utilizando caracteres de espacio como delimitadores, y que imprima slo aquellas palabras que comiencen con el carcter ingresado.

CARACTERISTICAS Y METODOS PRINCIPALES DE LAS CLASES


Una String es una variable referenciada asociada a un objeto de la clase java.lang.String. Se emplea para almacenar cadenas de caracteres. Las Strings tienen una caracterstica que las diferencia del resto de objetos: son inmutables, es decir, cuando se intenta modificarlas, por ejemplo al aplicarles un mtodo, no se modifican sino que se crea otra String nueva. Siempre ser posible crear un String vaco y rellenarle posteriormente: String sC=new String(); sC="Holamundo"; sin que sean posibles cambios posteriores.

Un String est indexado, es decir, cada uno de sus caracteres tiene asociado un ndice: 0 para el primero, 1 para el segundo, etc. La cadena de caracteres almacenada por un String siempre se escribe entre comillas dobles. MTODOS PRINCIPALES Para poder aplicar estos mtodos es necesario crear un objeto String. Adems de estos mtodos, la clase String cuenta con muchos otros. intlength(): devuelve la longitud de la String, incluyendo espacios en blanco. La longitud siempre es una unidad mayor que el ndice asociado al ltimo carcter de la String. Ejemplo:

intindexOf(Stringstr, intindice): devuelve el ndice en el que aparece por primera vez la String del primer argumento en la que se aplica el mtodo, a partir del ndice especificado en el segundo argumento. Recordar que una String est indexada. Si el ndice a partir del que se inicia la bsqueda no existe o la String no aparece, devuelve 1. MUY USADO.

Por consola: Porque la bsqueda se inicia a partir de un ndice que no existe ya que el ndice mayor es la longitud de la String

A).- intindexOf(char ch): devuelve el ndice en el que aparece por primera vez el carcter que se le pasa al argumento. Si no se encuentra el carcter devuelve 1. Se observa que el nombre de este mtodo es igual al anterior aunque su nmero de argumentos es distinto adems de su tipo. A esto, en Java, se le llama sobrecarga de mtodos: mismo nombre pero distinto n de argumentos o distinto tipo de argumentos o distinto orden.

B).- Stringreplace (charviejoChar, charnuevoChar): cambia el carcter asociado al primer argumento por el que se le pasa al segundo, de la String sobre la que se aplica el mtodo generando una nueva. La String sobre la que se aplica el mtodo no cambia, simplemente se crea otra nueva en base a la String sobre la que se aplica el mtodo.

Por consola:

StringtoLowerCase(): devuelve una nueva String convirtiendo todos los caracteres de la String sobre la que se aplica el mtodo, en minsculas.

StringtoUpperCase(): devuelve una nueva String convirtiendo todos los caracteres de la String sobre la que se aplica el mtodo, en maysculas.

booleanequals(Stringstr): investiga si dos String tienen los mismos caracteres y en el mismo orden. Si es as devuelve true y si no false.

booleanequalsIgnoreCase(Stringstr): investiga si dos String tienen los mismos caracteres y en el mismo orden sin tener en cuenta las maysculas. Si es as devuelve true y si no false.

booleanstartsWith(Stringstr): devuelve true si la String sobre la que se aplica comienza por la del argumento; false si esto no ocurre.

booleanstartsWith(Stringstr, intindice): devuelve true si la String sobre la que se aplica comienza por la del argumento a partir de un determinado ndice asociado al segundo argumento; false si esto no ocurre.

booleanendsWith(Stringstr): devuelve true si la String sobre la que se aplica acaba en la del argumento; false si esto no ocurre. Stringtrim(): devuelve una String en base a la que se le pasa al argumento, pero sin espacios en blanco al principio ni al final. No elimina los espacios en blanco situados entre las palabras.

Por consola:

Stringsubstring(intindiceIni, intindiceFin): devuelve una String obtenida a partir del ndice inicial incluido y del ndice final excluido; es decir, se comporta como un intervalo semiabierto [indiceIni, indiceFin). Si el ndice final sobrepasa la longitud de la String, lanza una IndexOutOfBoundsException. MUY USADO.

Por consola:

intcompareTo(String str1)Compara 2 cadenas y retorna un valor numrico.: Cero (o): si ambas cadenas son iguales Un nmero < 0 si la primera hilera es menor a la segunda.

10

Un nmero > 0 si la primera hilera es mayor a la segunda.

charcharAt (intindice): devuelve el carcter asociado al ndice que se le pasa como argumento de la String sobre la que se aplica el mtodo. Si el ndice no existe se lanza una StringIndexOutOfBoundsException que hereda de IndexOutOfBoundsException. MUY USADO.

La clase StringBuffer

En la seccin dedicada a los operadores hemos visto que es posible concatenar cadenas de caracteres, es, decir, objetos de la clase String. Ahora bien, los objetos de la clase String son constantes lo cual significa que por defecto, solamente se pueden crear y leer pero no se pueden modificar. Imaginemos una funcin miembro a la cual se le pasa un array de cadenas de caracteres. Cada vez que se aade una nueva palabra, se reserva una nueva porcin de memoria y se desecha la vieja porcin de memoria que es ms pequea (una palabra menos) para que sea liberada por el recolector de basura (grabagecollector). Si el bucle se realiza 1000 veces, habr 1000 porciones de memoria que el recolector de basura ha de identificar y liberar. Para evitar este trabajo extra al recolector de basura, se puede emplear la clase StringBuffer que nos permite crear objetos dinmicos, que pueden modificarse. La funcin append incrementa la memoria reservada para el objeto mensaje con una palabra ms sin crear nueva memoria, cada vez que se ejecuta el bucle. La clase StringBuffer se utiliza prcticamente siempre que se desee modificar una cadena de caracteres. Completa los mtodos de la clase String ya que stos realizan slo operaciones sobre el texto que no conllevan un aumento o disminucin del nmero de letras del String. Recurdese que hay muchos mtodos cuyos argumentos deben ser objetos String, que antes de pasar esos argumentos habr que realizar la conversin correspondiente.

11

CLASE BUFFER
Si se quiere utilizar un String que pueda variar de tamao o contenido, sedeber crear un objeto de la clase StringBuffer. La clase StringBufferdispone 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. Al estar la mayora de las caractersticas de los StringBuffers basadas en su tamao variable, se necesita un nuevo mtodo de creacin: StringBuffer(); StringBuffer(intlen ); StringBuffer( String str ); Se puede crear un StringBuffer vaco de cualquier longitud y tambin se puede utilizar un String como punto de partida para un StringBuffer. StringBuffer Dos = new StringBuffer( 20 ); StringBuffer Uno = new StringBuffer( "HolaMundo" ); Constructor de la Clase StringBuffer Permite crear un objeto de la clase StringBuffer. Se puede crear un StringBuffer vaco de cualquier longitud y tambin se puede utilizar un String como punto de partida para un StringBuffer :

12

Ejemplo: 1 // Los constructores de la clase StringBuffer. 2 import javax.swing.*; 3 4 public class ConstructoresStringBuffer { 5 6 public static void main( String args[] ) 7{ 8 StringBuffer buffer1 = new StringBuffer(); 9 StringBuffer buffer2 = new StringBuffer( 10 ); 10 StringBuffer buffer3 = new StringBuffer( "hola" ); 11 12 String salida = "buffer1 = \"" + buffer1.toString() + "\"" + 13 "\nbuffer2 = \"" + buffer2.toString() + "\"" + 14 "\nbuffer3 = \"" + buffer3.toString() + "\""; 15 16 JOptionPane.showMessageDialog( null, salida, 17 "Constructores de StringBuffer", JOptionPane.INFORMATION_MESSAGE ); 18 19 System.exit( 0 ); 20 } 21 22 } // fin de la clase ConstructoresStringBuffer Cuando llamamos a StringBuffer y la llamamos sin argumentos construye un objeto vaco con una capacidad inicial para 16 caracteres; cuando se llama con un argumento entero, construye un objeto vaco con la capacidad especificada; y cuando se invoca con un String como argumento construye un objeto con la secuencia de caracteres proporcionada por el argumento y una capacidad igual al nmero de caracteres almacenados ms 16.

Cambio de Tamao
El cambio de tamao de un StringBuffer necesita varias funciones especficas para manipular el tamao de las cadenas: Ejemplo: int length (); char charAt (int index); void getChars (intsrcBegin,intsrcEnd,chardst[],intdstBegin); String toString (); void setLength (intnewlength);

13

void setCharAt (intindex,charch); int capacity (); void ensureCapacity (int minimum); voidcopyWhenShared (); Obervar que una de las funciones devuelve una cadena constante normal de tipo String. Este objeto se puede usar con cualquier funcin String, como por ejemplo, en las funciones de comparacin.

Mtodos de la clase StringBuffer

intcapacity ()

Este mtodo devuelve la capacidad en caracteres Unicode del objeto StringBuffer que recibe el mensaje capacity. La diferencia de este mtodo con el metodolength reside en que el mtodo length devuelve la longitud de la cadena almacenada en el objeto StringBuffer que recibe el mensaje, mientras que el mtodo capacity devuelve su capacidad total.

StringBufferappend (tipo x)

Este mtodo permite aadir la cadena de caracteres resultante de convertir el argumento x en un objeto String, al final del objeto StringBuffer que recibe el mensaje append. El tipo del argumento x puede ser boolean, char, char[], int, long, float, double, String y Object. Para cambiar el contenido de un StringBuffer, se pueden utilizar dos mtodos: append() e insert() . En el ejemplo CadAppend.java , vemos el uso de estos dos mtodos: Ejemplo. int length(); class CadAppend { public static void main (String args[]) { StringBufferstr = new StringBuffer ("Hola"); str.append ("Mundo"); System.out.println (str); } }

14

StringBuffer insert (intndice, tipo x)

Este mtodo permite aadir la cadena de caracteres resultante de convertir el argumento x en un objeto String, al final del objeto StringBuffer que recibe el mensaje insert. Los caracteres sern creados a partir de la posicin especificada por el argumento ndice. El tipo del argumento x puede ser boolean, char, char[], int, long, float, double, String y Object. La longitud del objeto StringBuffer se incrementa en la longitud correspondiente al String aadido. El siguiente ejemplo crea un objeto StringBuffer con la cadena Dia de la semana, a continuacin inserta la cadena Lunes a partir de la posicin 7, y finalmente aade al final, la cadena representativa del entero 2002. El resultado ser Dia Lunes del ao 2002:

Ejemplo: int length(); StringBufferstrb = new StringBuffer ("Dia de la semana"); strb.insert ("Da".length (), "Lunes"); strb.append (2002);

StringBufferdelete (int 1, int 2)

Este mtodo elimina todos los caracteres de la posicin 1 y 2 1 del objeto StringBuffer que recibe el mensaje delete. El valor 2 a de ser mayor que 1. Si 1 es igual que 2, no habr cambios, pero si es mayor se lanzar una excepcin, que ser lanzado por java. El siguiente ejemplo elimina la subcadena Lunes y aade en la misma posicin la cadena Martes: Ejemplo: int length (); StringBufferstrb = new StringBuffer ("Dia de la semana"); strb.insert (7, "Lunes"); strb.append (2002); strb.delete (7,13); strb.insert (7, "Martes");

StringBuffer replace (int1, int2, String str)

15

Este mtodo reemplaza los caracteres que hay entre las posiciones 1 y 2 1 del objeto StringBuffer que recibe el mensaje replace, por los caracteres especificados por str. La longitud y la capacidad del objeto resultante sern ajustadas automticamente al valor requerido. El valor 2 tiene que ser mayor que 1. Si 1 es igual que 2, la operacin se convierte en una insercin, y si es mayor Java lanzar una excepcin. El ejemplo anterior puede escribirse tambin as: Ejemplo: int length (); StringBufferstrb = new StringBuffer ("Dia de la semana"); strb.insert (7, "Lunes"); strb.append (2002); strb.replace(7, 13, "Martes");

StringBuffer reverse ()

El mtodo reverse hace que se cambie la cadena que tenemos guardada en el objeto StringBuffer que a su vez recibir un mensaje de reverse, por la misma cadena pero invertida.

void setCharAt (intndice, char car)

Este mtodo reemplaza el carcter que est en la posicin especificada en el objeto StringBuffer que recibe el mensaje setCharAt, por el nuevo carcter especificado. El ndice del primer carcter es 0. Por lo tanto, el parmetro ndice tiene que estar entre los valores 0 y length() 1.

16

Clases character
Al trabajar con caracteres se necesitan muchas funciones de comprobacin y traslacin. Estas funciones estn empleadas en la clase Character. Un objeto de tipo Character contiene un nico campo, cuyo tipo es char. Esta clase Character tambin ofrece un nmero mtodos de clase (estticos) tiles para manipular caracteres. Puede crear un objeto Character con el constructor Character: Character ch = new Character('a'); El compilador de Java tambin crear un objeto Character por usted bajo algunas circunstancias. Por ejemplo, si pasa un charinto primitivo que espera un objeto, el compilador automticamente convierte el char a un Character por usted. Esta caracterstica se llama autoencajonadoo desencajonado, si la conversin va en el sentido contrario. La clase Character es inmutable, as que una vez que se crea, un objeto Character no se puede cambiar.

Mtodo booleanisLetter(char ch) booleanisDigit(char ch) booleanisWhiteSpace(char ch) booleanisUpperCase(char ch) booleanisLowerCase(char ch) char toUpperCase(char ch) char toLowerCase(char ch) toString(char ch)

Descripcin Determina si el valor char especificado es una letra o un dgito, respectivamente. Determina si el valor char especificado es un espacio en blanco. Determina si el valor char especificado es mayscula o minscula, respectivamente. Devuelve la forma mayscula o minscula del valor de carcter especificado. Devuelve un objeto String representando el valor del carcter especificadoesto es, una cadena de un carcter.

17

StringTokenizer
La clase java.util.StringTokenizer da la posibilidad de separar una cadena de carcteres en las palabras (tokens) que la forman (por defecto, conjuntos de caracteres separados por un espacio, '\t', '\r', o por '\n'). Cuando sea preciso se pueden convertir las palabras en nmeros.

La clase StreamTokenizer de java.io aporta posibilidades ms avanzadas que StringTokenizer, pero tambin es ms compleja. Directamente separa en tokens lo que entra por un InputStream o Reader. El mtodoStringTokenizerno distinguen entre los identificadores, nmeros y cadenas entre comillas, ni reconoce los comentarios. El conjunto de delimitadores (los caracteres que separan los tokens) puede ser especificado en tiempo de creacin. Una instancia de StringTokenizerse comporta de dos maneras, dependiendo de si se cre con la returnDelims; bandera que tiene el valor true o false :

Si la bandera es false, los caracteres delimitadores sirven para separar los tokens. Un token es una secuencia mxima de caracteres consecutivos que no son delimitadores. Si la bandera es true, los caracteres delimitadores son considerados como tokens.Un smbolo es, o un carcter delimitador, o una secuencia mxima de caracteres consecutivos que no son delimitadores. Un objeto StringTokenizer internamente mantiene una posicin dentro de la cadena que se acorta o a sido tokenizada. Se recuerda que la manera de convertir un String del tipo 3.141592654 en el valor double correspondiente es crear un objeto Double a partir de l y luego extraer su valor double: double pi = (Double.valueOf("3.141592654")).doubleValue(); El uso de estas clases facilita el acceso desde teclado, resultando un cdigo ms fcil de escribir y de leer. Adems tiene la ventaja de que se puede generalizar a la lectura de archivos.

18

El siguiente es un ejemplo del uso de la tokenizer. El cdigo: StringTokenizerst = new StringTokenizer ("estoesunaprueba"); while (st.hasMoreTokens ()) { System.out.println (st.nextToken ()); } imprime el resultado siguiente: esto es una prueba de StringTokenizer ,es una clase heredada que se mantiene por razones de compatibilidad, aunque su uso no se recomienda en el nuevo cdigo. Se recomienda que cualquier persona que busca esta funcin utiliza el mtodo de divisin de la cadena o el paquete java.util.regex lugar.

19

BIBLIOGRAFA

Programacin orientada a objetos Como programar en java Aprendiendo java www.desarrolloweb.com Books.google.com.pe

20