Manejo de Strings y archivos de texto en Java

Anuncio
Strings en Java
 String es una clase, no un tipo primitivo.
 Las variables de tipo String, en cualquier instante,
pueden contener:
Manejo básico de cadenas de caracteres y
archivos de texto en Java
  Un String (ej. “Hola”, “11/11/2011”, “123”, “”, etc. )
  El valor null (cuando la variable no contiene un
String).
Prof. Franco Guidi Polanco, Ph.D.
 Observaciones:
Escuela de Ingeniería Industrial
Pontificia Universidad Católica de Valparaíso, Chile
fguidi@ucv.cl
  Cuando se instancia un arreglo de String, sus posiciones
se incializan automáticamente en null.
  El valor null puede ser asignado a cualquier variable
String.
Franco Guidi Polanco
Valor null
28-11-11
Método equals
 Para saber si una variable de tipo String contiene
el valor null:
 Para saber si una variable de tipo String (no null)
contiene un determinado texto, debemos usar el
método equals sobre la variable:
String x;
String x;
//Aquí x puede o no recibir un valor
...
//Aquí x recibe un valor
...
if( x == null )
System.out.println(“No contiene String”);
else
System.out.println(“Sí contiene String”);
if( x.equals(“Esternocleidomastoideo”) )
System.out.println(“Igual”);
else
System.out.println(“Distinto”);
Franco Guidi Polanco
2
28-11-11
3
Franco Guidi Polanco
28-11-11
4
Método equals
Método equals
 Para establecer si dos variables String (no null)
contienen el mismo valor:
 Para establecer si dos variables String (no null)
contienen valores distintos, se niega el resultado
del método equals:
String x, y;
String x, y;
//Aquí x e y reciben valores
...
//Aquí x e y reciben valores
...
if( x.equals( y ) )
System.out.println(“Igual”);
else
System.out.println(“Distinto”);
if( ! x.equals( y ) )
System.out.println(“Distintos”);
else
System.out.println(“Iguales”);
Franco Guidi Polanco
28-11-11
5
String x, y;
String x = “Esternocleidomastoideo”;
String y = “EsternocleidoMastoideo”;
Franco Guidi Polanco
28-11-11
6
 Para aplicar cualquiera de los métodos anteriores
sobre una variable, es necesario que ésta no sea
null. Para verificar esta condición:
 El método equals distingue entre mayúsculas y minúsculas.
 Si no deseamos hacer distinción entre mayúsculas y
minúsculas debemos utilizar el método
equalsIgnoreCase.
if( x.equalsIgnoreCase( y ) )
System.out.println(“Iguales”);
else
System.out.println(“Distintas”);
28-11-11
Métodos no deben ser invocados sobre variables
que contengan null.
Método equalsIgnoreCase
if( x.equals( y ) )
System.out.println(“Iguales”);
else
System.out.println(“Distintas”);
Franco Guidi Polanco
//Aquí x e y
...
pueden o no recibir un valor
if( x != null )
if( x.equals( y ) )
System.out.println(“Igual”);
...
// o en forma alternativa (en este orden):
if( x != null && x.equals( y ) )
System.out.println(“Igual”);
Distintas
Iguales
7
Franco Guidi Polanco
28-11-11
NOTA: No
es problema
que variable
y sea null.
8
Métodos útiles de la clase String
Métodos útiles de la clase String
 public String substring(int beginIndex, int endIndex):
retorna una porción de un String, delimitada por subíndices
de posición de sus caracteres. Ejemplo:
 public String trim(): retorna un String con el mismo
contenido, pero con el espacio inicial y final eliminado.
String queja = “
odio el espacio que me rodea
System.out.println( “(” + queja + “)” );
String nombre = “Nogatongamegalosomanjarchafafrinilofo”;
String parte= nombre.substring( 2, 5 );
System.out.println( parte );
(
gato
28-11-11
)
String solución = queja.trim();
System.out.println( “(” + solución + “)” );
 Nota: el primer caracter ocupa la posición 0.
Franco Guidi Polanco
odio el espacio que me rodea
” ;
(odio el espacio que me rodea)
9
Métodos útiles de la clase String
Franco Guidi Polanco
28-11-11
10
Métodos útiles de la clase String
 public String replaceAll(String regex, String reemplazo):
retorna un String que reemplaza las porciones que
coinciden con regex, por el String de reemplazo.
 public String[] split(String regex): retorna un arreglo de
Strings que contiene en cada posición una porción del
String original, considerando como divisor a regex.
String dato = “LA CASA DEL CASADO” ;
String otroDato = dato.replaceAll( “AS”, “OL” );
System.out.println( otroDato );
String familia = “Juan;Ana;Camila” ;
String[] personas = familia.split(“;”);
System.out.println( personas[0] );
System.out.println( personas[2] );
LA COLA DEL COLADO
Juan
Camila
Franco Guidi Polanco
28-11-11
11
Franco Guidi Polanco
28-11-11
12
Secuencias de escape
Ejemplos de secuencias de escape
 El backslash (“\”) se utiliza dentro de de String
literales para iniciar secuencias de escape.
System.out.println(“Hola\nqué\ntal”);
Hola
qué
tal
 Secuencias de escape importantes:
 
 
 
 
 
System.out.println(“Esto es \”realmente\” útil”);
“\n”: cambio de línea
“\t”: tabulación
“\’” : comilla simple
“\””: comilla dobe
“\\”: backslash
Esto es “realmente” útil
System.out.println(“Carpeta: c:\\tareas\\progamación”);
Carpeta: c:\tareas\programación
Franco Guidi Polanco
28-11-11
13
Archivos de texto
Franco Guidi Polanco
28-11-11
14
Archivos de texto v/s archivos con formato
 Documentos en disco que contienen caracteres.
 Útiles para ingreso masivo de datos, guardar
resultados o mantener datos simples en forma
persistente.
 Operaciones que estudiaremos:
  Consultar si un archivo existe
  Leer un archivo existente
  Crear un archivo nuevo
 Las clases involucradas se encuentran dentro del
package java.io y generan excepciones del tipo
IOException.
Franco Guidi Polanco
28-11-11
Archivo de texto (plano)
15
Franco Guidi Polanco
28-11-11
Archivo con formato
16
Para consultar la existencia de un archivo
Lectura de datos de una archivo de texto
 Por ejemplo, para saber si existe el archivo:
c:\documentos\datos.txt
 Lectura de un archivo línea a línea (por ejemplo,
del archivo llamado “datos.txt” ) :
File archivo = new File( “c:\\documentos\\datos.txt” );
if ( archivo.exists() )
System.out.println(“El archivo existe”);
else
System.out.println(“El archivo no existe”);
  Nota: El “\” debe escribirse doble (“\\”) dentro de las cadenas de texto
literales.
Franco Guidi Polanco
28-11-11
17
Escritura de datos de una archivo de texto
 Para generar un nuevo archivo (por ejemplo,
“datos.txt” ):
BufferedWriter out = new BufferedWriter(new
FileWriter( “datos.txt” ));
out.write( “Esto ” );
out.write( “es ” );
out.write( “la primera línea” );
out.newLine();
//Hace un cambio de línea
out.write( “Y esto ” );
out.write( “es la segunda línea” );
out.close();
Franco Guidi Polanco
Esto es la primera línea
Y esto es la segunda línea
28-11-11
19
BufferedReader in = new BufferedReader(
new FileReader(“datos.txt”));
String linea;
while ((linea = in.readLine()) != null) {
System.out.println(linea);
}
in.close();
 Si el archivo no existe o hay otro problema durante
la lectura, se generará una IOException.
Franco Guidi Polanco
28-11-11
18
Descargar