Manejo básico de cadenas de caracteres y
archivos de texto en Java
Prof. Franco Guidi Polanco, Ph.D.
Escuela de Ingeniería Industrial
Pontificia Universidad Católica de Valparaíso, Chile
[email protected]
Strings en Java
String es una clase, no un tipo primitivo.
Las variables de tipo String, en cualquier instante,
pueden contener:
Un String (ej. “Hola”, “11/11/2011”, “123”, “”, etc. )
El valor null (cuando la variable no contiene un
String).
Observaciones:
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
28-11-11
2
Valor null
Para saber si una variable de tipo String contiene
el valor null:
String x;
//Aquí x puede o no recibir un valor
...
if( x == null )
System.out.println(“No contiene String”);
else
System.out.println(“Sí contiene String”);
Método equals
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;
//Aquí x recibe un valor
...
if( x.equals(“Esternocleidomastoideo”) )
System.out.println(“Igual”);
else
System.out.println(“Distinto”);
Franco Guidi Polanco
28-11-11
3
Franco Guidi Polanco
28-11-11
4
Método equals
Para establecer si dos variables String (no null)
contienen el mismo valor:
String x, y;
//Aquí x e y reciben valores
...
if( x.equals( y ) )
System.out.println(“Igual”);
else
System.out.println(“Distinto”);
Método equals
Para establecer si dos variables String (no null)
contienen valores distintos, se niega el resultado
del método equals:
String x, y;
//Aquí x e y reciben valores
...
if( ! x.equals( y ) )
System.out.println(“Distintos”);
else
System.out.println(“Iguales”);
Franco Guidi Polanco
28-11-11
5
Franco Guidi Polanco
28-11-11
6
Método equalsIgnoreCase
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.
String x = “Esternocleidomastoideo”;
String y = “EsternocleidoMastoideo”;
if( x.equals( y ) )
System.out.println(“Iguales”);
else
System.out.println(“Distintas”);
if( x.equalsIgnoreCase( y ) )
System.out.println(“Iguales”);
else
System.out.println(“Distintas”);
Distintas
Iguales
Métodos no deben ser invocados sobre variables
que contengan null.
Para aplicar cualquiera de los métodos anteriores
sobre una variable, es necesario que ésta no sea
null. Para verificar esta condición:
String x, y;
//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 ) )
NOTA: No
es problema
que variable
y sea null.
System.out.println(“Igual”);
Franco Guidi Polanco
28-11-11
7
Franco Guidi Polanco
28-11-11
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 nombre = “Nogatongamegalosomanjarchafafrinilofo”;
String parte= nombre.substring( 2, 5 );
System.out.println( parte );
gato
Nota: el primer caracter ocupa la posición 0.
String queja = “ odio el espacio que me rodea ” ;
System.out.println( “(” + queja + “)” );
String solución = queja.trim();
System.out.println( “(” + solución + “)” );
( odio el espacio que me rodea )
(odio el espacio que me rodea)
Franco Guidi Polanco
28-11-11
9
Franco Guidi Polanco
28-11-11
10
Métodos útiles de la clase String
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 );
LA COLA DEL COLADO
String familia = “Juan;Ana;Camila” ;
String[] personas = familia.split(“;”);
System.out.println( personas[0] );
System.out.println( personas[2] );
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.
Secuencias de escape importantes:
“\n”: cambio de línea
“\t”: tabulación
“\’” : comilla simple
“\””: comilla dobe
“\\”: backslash
System.out.println(“Hola\nqué\ntal”);
Hola
qué
tal
System.out.println(“Esto es \”realmente\” útil”);
Esto es “realmente” útil
System.out.println(“Carpeta: c:\\tareas\\progamación”);
Carpeta: c:\tareas\programación
Franco Guidi Polanco
28-11-11
13
Franco Guidi Polanco
28-11-11
14
Archivos de texto
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.
Archivo de texto (plano)
Archivo con formato
Franco Guidi Polanco
28-11-11
15
Franco Guidi Polanco
28-11-11
16
Para consultar la existencia de un archivo
Por ejemplo, para saber si existe el archivo:
c:\documentos\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.
Lectura de datos de una archivo de texto
new FileReader(“datos.txt”));
Lectura de un archivo línea a línea (por ejemplo,
del archivo llamado “datos.txt” ) :
BufferedReader in = new BufferedReader(
String linea;
while ((linea = in.readLine()) != null) {
}
in.close();
Si el archivo no existe o hay otro problema durante
System.out.println(linea);
la lectura, se generará una IOException.
Franco Guidi Polanco
28-11-11
17
Franco Guidi Polanco
28-11-11
18
Escritura de datos de una archivo de texto
Para generar un nuevo archivo (por ejemplo,
“datos.txt” ):
FileWriter( “datos.txt” ));
BufferedWriter out = new BufferedWriter(new
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();
Esto es la primera línea
Y esto es la segunda línea
Franco Guidi Polanco
28-11-11
19
Comentarios de: Manejo básico de cadenas de caracteres y archivos de texto en Java (0)
No hay comentarios