Implementación de Aplicaciones Basadas en Texto

17
Implementación de Implementación de Aplicaciones Basadas en Texto Aplicaciones Basadas en Texto Ing. Rolando Steep Quezada Martínez Ing. Rolando Steep Quezada Martínez [email protected] [email protected] Programación Básica en Java y Programación Orientada a Objetos Programación Básica en Java y Programación Orientada a Objetos

Transcript of Implementación de Aplicaciones Basadas en Texto

Page 1: Implementación de Aplicaciones Basadas en Texto

Implementación de Aplicaciones Implementación de Aplicaciones Basadas en TextoBasadas en Texto

Ing. Rolando Steep Quezada MartínezIng. Rolando Steep Quezada Martí[email protected]@upnorte.edu.pe

Programación Básica en Java y Programación Orientada a Objetos Programación Básica en Java y Programación Orientada a Objetos

Page 2: Implementación de Aplicaciones Basadas en Texto

Copyright © 2005, Universidad Privada del Norte S.A.C. – Ing. Rolando Steep Quezada MartínezCopyright © 2005, Universidad Privada del Norte S.A.C. – Ing. Rolando Steep Quezada Martínez 10-10-22

Entrada/Salida estándarEntrada/Salida estándar

• Stream de salida estándar: System.out– Objeto PrintStream (es un tipo de OutputStream)– Métodos de escritura print(valor) y println(valor) para los

siguientes tipos:

• Stream de entrada estándar: System.in– Objeto InputStream

• Salida de error “estándar”: System.err– Objeto PrintStream– Mostrar mensajes de error o cualquier otra información que requiera la

atención inmediata del usuario

char int float Object boolean

char[] long double String

Page 3: Implementación de Aplicaciones Basadas en Texto

Copyright © 2005, Universidad Privada del Norte S.A.C. – Ing. Rolando Steep Quezada MartínezCopyright © 2005, Universidad Privada del Norte S.A.C. – Ing. Rolando Steep Quezada Martínez 10-10-33

Lectura de datos por TecladoLectura de datos por Teclado

InputStream

InputStreamReaderint read()read(char[])

BufferedReaderreadLine()

read()read(byte[])bytes

Page 4: Implementación de Aplicaciones Basadas en Texto

Copyright © 2005, Universidad Privada del Norte S.A.C. – Ing. Rolando Steep Quezada MartínezCopyright © 2005, Universidad Privada del Norte S.A.C. – Ing. Rolando Steep Quezada Martínez 10-10-44

Lectura de datos con ScannerLectura de datos con Scanner

Page 5: Implementación de Aplicaciones Basadas en Texto

Copyright © 2005, Universidad Privada del Norte S.A.C. – Ing. Rolando Steep Quezada MartínezCopyright © 2005, Universidad Privada del Norte S.A.C. – Ing. Rolando Steep Quezada Martínez 10-10-55

VarargsVarargs

Page 6: Implementación de Aplicaciones Basadas en Texto

Copyright © 2005, Universidad Privada del Norte S.A.C. – Ing. Rolando Steep Quezada MartínezCopyright © 2005, Universidad Privada del Norte S.A.C. – Ing. Rolando Steep Quezada Martínez 10-10-66

Salida con FormatoSalida con Formato

• La clase Formatter nos permite crear plantillas para la salida de nuestros datos.

• También podemos usarlo System.out.format• Para dar el formato usaremos el metodo format :

public Formatter format(String format, Object... args);public Formatter format(Locale l, String format, Object... args);

Page 7: Implementación de Aplicaciones Basadas en Texto

Copyright © 2005, Universidad Privada del Norte S.A.C. – Ing. Rolando Steep Quezada MartínezCopyright © 2005, Universidad Privada del Norte S.A.C. – Ing. Rolando Steep Quezada Martínez 10-10-77

La Clase StringLa Clase String

• Clase especializada en el manejo de arreglos de caracteres.

• Su creación no está supeditada al operador new, puede ser implícita.

publica String() //constructor de un obj de valor “”public String(String value)//constructor de obj copia de value

• El valor de una instancia de String es inmutable.

Page 8: Implementación de Aplicaciones Basadas en Texto

Copyright © 2005, Universidad Privada del Norte S.A.C. – Ing. Rolando Steep Quezada MartínezCopyright © 2005, Universidad Privada del Norte S.A.C. – Ing. Rolando Steep Quezada Martínez 10-10-99

String. Funciones miembroString. Funciones miembro

• length .- Permite obtener la longitud de la cadena.

• startsWith.- true si la cadena empieza con el parámetro indicado.

• endsWith.- true si la cadena termina con el parámetro indicado.

• indexOf.- retorna la posición de la primera aparición del valor buscado (carácter o subcadena). Se puede especificar un índice inicial para la búsqueda.

Page 9: Implementación de Aplicaciones Basadas en Texto

Copyright © 2005, Universidad Privada del Norte S.A.C. – Ing. Rolando Steep Quezada MartínezCopyright © 2005, Universidad Privada del Norte S.A.C. – Ing. Rolando Steep Quezada Martínez 10-10-1111

Comparación de stringsComparación de strings

• Al ser una clase el valor de un String no puede compararse con el operador ==.

• Ofrece dos métodos para comparar el su valor:– equals.- Método heredado de Object que es sobreescrito para lograr la

comparación de dos arreglos de caractéres.

– equalsIgnoreCase.- la comparación no diferencia mayúsculas o minúsculas.

– compareTo.- retorna un entero < 0 si el parámetro es mayor con respecto al alfabeto, 0 si son iguales y > 0 si es menor.

– compareToIgnoreCase.- la comparación no diferencia mayúsculas o minúsculas.

• Si se aplica la comparación con ==, se estaría comparando la dirección de memoria y no su contenido.

Page 10: Implementación de Aplicaciones Basadas en Texto

Copyright © 2005, Universidad Privada del Norte S.A.C. – Ing. Rolando Steep Quezada MartínezCopyright © 2005, Universidad Privada del Norte S.A.C. – Ing. Rolando Steep Quezada Martínez 10-10-1313

Extraer un substring de un stringExtraer un substring de un string

• Define un método sobrecargado para la extracción de un subcadena de su valor.

• subString.- retorna la cadena a partir de una posición inicial. Puede especificarse una posición final.

Page 11: Implementación de Aplicaciones Basadas en Texto

Copyright © 2005, Universidad Privada del Norte S.A.C. – Ing. Rolando Steep Quezada MartínezCopyright © 2005, Universidad Privada del Norte S.A.C. – Ing. Rolando Steep Quezada Martínez 10-10-1414

String y NúmerosString y Números

Número -> String

– valueOf.- Método polimórfico por sobrecarga que transforma un número a su equivalente en cadena.

String -> Número

Las clases envolventes de tipos primitivos proveen dos formas de transformar una cadena a un tipo numérico específico.

– parseXXX– valueOf( str ).XXXvalue

donde XXX es el tipo deseado

Page 12: Implementación de Aplicaciones Basadas en Texto

Copyright © 2005, Universidad Privada del Norte S.A.C. – Ing. Rolando Steep Quezada MartínezCopyright © 2005, Universidad Privada del Norte S.A.C. – Ing. Rolando Steep Quezada Martínez 10-10-1616

La clase La clase StringBufferStringBuffer

• Gestiona arreglos de caracteres al igual que String, aunque la mayor diferencia es que su valor es mutable.

• Para cambiar el contenido de un StringBuffer, se pueden utilizar dos métodos: append() e insert().

• Ejemplo:

su equivalente con StringBuffer:

Page 13: Implementación de Aplicaciones Basadas en Texto

Copyright © 2005, Universidad Privada del Norte S.A.C. – Ing. Rolando Steep Quezada MartínezCopyright © 2005, Universidad Privada del Norte S.A.C. – Ing. Rolando Steep Quezada Martínez 10-10-1818

La clase La clase StringTokenizerStringTokenizer

• Separa elementos de una cadena dado un carácter de separación, que por default es el espacio.

Page 14: Implementación de Aplicaciones Basadas en Texto

Copyright © 2005, Universidad Privada del Norte S.A.C. – Ing. Rolando Steep Quezada MartínezCopyright © 2005, Universidad Privada del Norte S.A.C. – Ing. Rolando Steep Quezada Martínez 10-10-1919

ConstructoresConstructores

– StringTokenizer(String); //Separa una cadena cuando encuentra los delimitadores por /default que son espacio, tabulador, retorno de carro.

– StringTokenizer(String, String); //separa la primer cadena con el delimitador indicado //por la segunda cadena.

– String Tokenizer(String,String,boolean); //Permite incorporar a los tokens de la cadena //los elementos delimitadores según la condición boleana.

Page 15: Implementación de Aplicaciones Basadas en Texto

Copyright © 2005, Universidad Privada del Norte S.A.C. – Ing. Rolando Steep Quezada MartínezCopyright © 2005, Universidad Privada del Norte S.A.C. – Ing. Rolando Steep Quezada Martínez 10-10-2020

Obtención de los tokensObtención de los tokens

– countTokens() //Determina el número de tokens restantes en el String Tokenizer (ST).

– hasMoreTokens() //Determina cuando el St tiene más elementos.

– nextToken() //Regresa el siguiente token del ST.

Page 16: Implementación de Aplicaciones Basadas en Texto

Copyright © 2005, Universidad Privada del Norte S.A.C. – Ing. Rolando Steep Quezada MartínezCopyright © 2005, Universidad Privada del Norte S.A.C. – Ing. Rolando Steep Quezada Martínez 10-10-2222

ResumenResumen

• Java brinda clases para el manejo de rutinas comunes en una aplicación.

• La clase Scanner simplifica la lectura de datos.• En Java se pueden escribir métodos de argumento variable

si utilizar sobrecarga.• Java permite la salida con formato similar a c.• El valor de la cadena de una clase String es inmutable.• StringBuffer no crea nuevas referencias de memoria al

concatenar o insertar un valor a la cadena que contiene.• StringTokenizer permite recuperar los tokens de un texto

especificando un delimitador.

Page 17: Implementación de Aplicaciones Basadas en Texto

Copyright © 2005, Universidad Privada del Norte S.A.C. – Ing. Rolando Steep Quezada MartínezCopyright © 2005, Universidad Privada del Norte S.A.C. – Ing. Rolando Steep Quezada Martínez 10-10-2323

Práctica 9Práctica 9

Objetivos:

– Utilizar las clases del JDK de Java para realizar tareas de entrada/salida estándar.

– Adquirir habilidad en el tratamiento de cadenas de caracteres