Publicado el 31 de Julio del 2017
654 visualizaciones desde el 31 de Julio del 2017
157,0 KB
19 paginas
Creado hace 18a (24/04/2007)
Clases interesantes
Luis Fernando Llana Díaz
Departamento de Sistemas Informáticos y Computación
Universidad Complutense de Madrid
24 de abril de 2007
Luis Fernando Llana Díaz
Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid
Clases interesantes
Clases interesantes I
Paquete java.util
Collections Clase con métodos estáticos para
manejar colecciones.
Date Para manejar instantes en el tiempo
(UTC).
GregorianCalendar Para manejar fechas.
Locale Para ayudar a la localización de las
aplicaciones.
Random Generación de números aleatorios.
Luis Fernando Llana Díaz
Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid
Clases interesantes
Clases interesantes II
Paquete java.lang
Clases envoltorio Integer, Double, etc Clases de
objetos inmutables para los tipos
básicos.
StringBuffer Cadedas de caracteres de objetos no
inmutables.
Luis Fernando Llana Díaz
Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid
Clases interesantes
Expresiones regulares I
Comprobación de cadenas de caracteres
Un número de factura es correcto si es de la forma 2345/07.
Las facturas no se borran, si se borra una la marcamos
poniendo una R delante.
A veces interesa construir una factura a partir de unas
existentes. Si tengo los números 0967/06, 0124/07, 0345/07,
construimos la auxiliar AUX-0967/06-0124/07-0345/07.
Hacer una función que compruebe si una factura es correcta
Luis Fernando Llana Díaz
Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid
Clases interesantes
Expresiones regulares II
Sustituciones genéricas
Tenemos un fichero de texto en el que hay muchas fechas con
formato mm/dd/aaaa. Las queremos cambiar al formato
aaaa/mm/dd.
Luis Fernando Llana Díaz
Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid
Clases interesantes
Programa de prueba
p r i v a t e static void prueba ( String patron ,
String s ) {
P a t t e r n p = P a t t e r n . c o m p i l e ( patron );
M a t c h e r m = p . m a t c h e r ( s );
System . out . format ( " \ n P a t r o n : %s :\ n C a d e n a : %s :\ n " , patron , s );
b o o l e a n enc = false ;
while ( m . find ()) {
enc = true ;
System . out . format ( " E n c o n t r a d o %s desde la p o s i c i ó n %d " +
" hasta la p o s i c i ó n %d \ n " ,
m . group () , m . start () , m . end ());
for ( int i =0; i <= m . g r o u p C o u n t (); i ++) {
System . out . format ( " Grupo %d: %s : desde la p o s i c i ó n %d " +
" hasta la p o s i c i ó n %d \ n " ,
i , m . group ( i ) , m . start ( i ) , m . end ( i ));
}
}
if (! enc ) {
System . out . p r i n t l n ( " No e n c o n t r a d o " );
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Luis Fernando Llana Díaz
Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid
Clases interesantes
Cadena de caracteres
Una cadena de caracteres casa consigo misma
Patron : foo :
Cadena : f o o f o o f o o :
E n c o n t r a d o foo desde la p o s i c i ó n 0 hasta la p o s i c i ó n 3
Grupo 0: foo : desde la p o s i c i ó n 0 hasta la p o s i c i ó n 3
E n c o n t r a d o foo desde la p o s i c i ó n 3 hasta la p o s i c i ó n 6
Grupo 0: foo : desde la p o s i c i ó n 3 hasta la p o s i c i ó n 6
E n c o n t r a d o foo desde la p o s i c i ó n 6 hasta la p o s i c i ó n 9
Grupo 0: foo : desde la p o s i c i ó n 6 hasta la p o s i c i ó n 9
1
2
3
4
5
6
7
8
Luis Fernando Llana Díaz
Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid
Clases interesantes
Caracter simple
El carácter . casa con cualquier caracter. Es un meta-carácter (no
significan ellos mismos)
Patron : gato .:
Cadena : gatos :
E n c o n t r a d o gatos desde la p o s i c i ó n 0 hasta la p o s i c i ó n 5
Grupo 0: gatos : desde la p o s i c i ó n 0 hasta la p o s i c i ó n 5
Los meta-caracteres son: ([{\^-$|]})?*+. Si queremos hacer
casar un meta-carácter hay que precederlo con \.
prueba ( " gato \\. " ," gato . " );
Patron : gato \.:
Cadena : gato .:
E n c o n t r a d o gato . desde la p o s i c i ó n 0 hasta la p o s i c i ó n 5
Grupo 0: gato .: desde la p o s i c i ó n 0 hasta la p o s i c i ó n 5
1
2
3
4
1
2
3
4
5
6
Luis Fernando Llana Díaz
Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid
Clases interesantes
Caracteres
[abc]
[a-m]
[a-mA-M]
[^abc]
[a-z&&[^be]
[a-z&&[^b-e]]
casa con a, b y c.
casa con las letras desde la a hasta la m
casa con las letras desde la a hasta la m o desde
la A hasta la M
Casa on cualquier letra excepto con a, b y c.
casa con las letras desde la a hasta la z excepto
con b y e
casa con las letras desde la a hasta la z excepto
desde la b hasta la e
Luis Fernando Llana Díaz
Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid
Clases interesantes
Caracteres
Patron :[ aeg ]:
Cadena : a b c d e f g h i j k l m n o p q r s t u v x y z :
E n c o n t r a d o a desde la p o s i c i ó n 0 hasta la p o s i c i ó n 1
Grupo 0: a : desde la p o s i c i ó n 0 hasta la p o s i c i ó n 1
E n c o n t r a d o e desde la p o s i c i ó n 4 hasta la p o s i c i ó n 5
Grupo 0: e : desde la p o s i c i ó n 4 hasta la p o s i c i ó n 5
E n c o n t r a d o g desde la p o s i c i ó n 6 hasta la p o s i c i ó n 7
Grupo 0: g : desde la p o s i c i ó n 6 hasta la p o s i c i ó n 7
1
2
3
4
5
6
7
8
Luis Fernando Llana Díaz
Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid
Clases interesantes
Caracteres
Patron :[^ c - v ]:
Cadena : a b c d e f g h i j k l m n o p q r s t u v x y z :
E n c o n t r a d o a desde la p o s i c i ó n 0 hasta la p o s i c i ó n 1
Grupo 0: a : desde la p o s i c i ó n 0 hasta la p o s i c i ó n 1
E n c o n t r a d o b desde la p o s i c i ó n 1 hasta la p o s i c i ó n 2
Grupo 0: b : desde la p o s i c i ó n 1 hasta la p o s i c i ó n 2
E n c o n t r a d o x desde la p o s i c i ó n 22 hasta la p o s i c i ó n 23
Grupo 0: x : desde la p o s i c i ó n 22 hasta la p o s i c i ó n 23
E n c o n t r a d o y desde la p o s i c i ó n 23 hasta la p o s i c i ó n 24
Grupo 0: y : desde la p o s i c i ó n 23 hasta la p o s i c i ó n 24
E n c o n t r a d o z desde la p o s i c i ó n 24 hasta la p o s i c i ó n 25
Grupo 0: z : desde la p o s i c i ó n 24 hasta la p o s i c i ó n 25
1
2
3
4
5
6
7
8
9
10
11
12
Luis Fernando Llana Díaz
Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid
Clases interesantes
Caracteres
Patron :[ a - z &&[^ b - u ]]:
Cadena : a b c d e f g h i j k l m n o p q r s t u v x y z :
E n c o n t r a d o a desde la p o s i c i ó n 0 hasta la p o s i c i ó n 1
Grupo 0: a : desde la p o s i c i ó n 0 hasta la p o s i c i ó n 1
E n c o n t r a d o v desde la p o s i c i ó n 21 hasta la p o s i c i ó n 22
Grupo 0: v : desde la p o s i c i ó n 21 hasta la p o s i c i ó n 22
E n c o n t r a d o x desde la p o s i c i ó n 22 hasta la p o s i c i ó n 23
Grupo 0: x : desde la p o s i c i ó n 22 hasta la p o s i c i ó n 23
E n c o n t r a d o y desde la p o s i c i ó n 23 hasta la p o s i c i ó n 24
Grupo 0: y : desde la p o s i c i ó n 23 hasta la p o s i c i ó n 24
E n c o n t r a d o z desde la p o s i c i ó n 24 hasta la p o s i c i ó n 25
Grupo 0: z : desde la p o s i c i ó n 24 hasta la p o s i c i ó n 25
1
2
3
4
5
6
7
8
9
10
11
12
Luis Fernando Llana Díaz
Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid
Clases interesantes
Caracteres predefinidos
.
\d
\D
\s
\S
\w
\W
casa con cualquier carácter, puede o no casar
con final línea.
[0-9]
[^0-9]
espacio en blanco [ \t\n\x0B\f\r]
[^ \t\n\x0B\f\r]
[a-zA-Z_0-9]
[^a-zA-Z_0-9]
Luis Fernando Llana Díaz
Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid
Clases interesantes
Caracteres predefinidos
prueba ( " \\ d " ," aaa bbb 1 df 3 f " );
Patron :\ d :
Cadena : aaa bbb 1 df 3 f :
E n c o n t r a d o 1 desde la p o s i c i ó n 8 hasta la p o s i c i ó n 9
Grupo 0:1: desde la p o s i c i ó n 8 hasta la p o s i c i ó n 9
E n c o n t r a d o 3 desde la p o s i c i ó n 13 hasta la p o s i c i ó n 14
Grupo 0:3: desde la p o s i c i ó n 13 hasta la p o s i c i ó n 14
1
2
3
4
5
6
7
8
Luis Fernando Llana Díaz
Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid
Clases interesantes
Repeticiones
Voraz
X?
X*
X+
X{n}
X{n,}
X{n,m}
No voraz Posesivo
X??
X*?
X+?
X{n}?
X{n,}?
X{n,m}?
X?+
X*+
X++
X{n}+
X{n,}+
X{n,m}+
0 ó 1 aparición
0, 1 ó más
1 ó más
n apariciones
al menos n
entre n y m
Patron :.* foo :
Cadena : x f o o x x x x x x f o o :
E n c o n t r a d o x f o o x x x x x x f o o desde la p o s i c i ó n 0 hasta la p o s i c i ó n 13
Patron :.*? foo :
Cadena : x f o o x x x x x x f o o :
E n c o n t r a d o xfoo desde la p o s i c i ó n 0 hasta la p o s i c i ó n 4
E n c o n t r a d o x x x x x x f o o desde la p o s i c i ó n 4 hasta la p o s i c i ó n 13
Patron :.*+ foo :
Cadena : x f o o x x x x x x f o o :
No e n c o n t r a d o
1
2
3
4
5
6
7
8
9
10
11
12
Luis Fernando Llana Díaz
Departamento de Sistemas Informáticos y ComputaciónUniversidad Complutense de Madrid
Clases interesantes
Agrupaciones
Agrupación con captura
n-ésimo de captura
(X)
\n
(?:X) Agrupación sin capturar
Patron :(?: foo ){3}:
Cadena : f o o f o o f o o f o o f o o f o o :
E n c o n t r a d o f o o f o o f o o desde la p o s i c i ó n 0 hasta la p o s i c i ó n 9
Grupo 0: f o o f o o f o o : desde la p o s i c i ó n 0 hasta la p o s i c i ó n 9
E n c o n t r a d o f o o f o o f o o desde la p o s i c i ó n 9 hasta la p o s i c i ó n 18
Grupo 0: f o o f o o f o o : desde la p o s i c i ó n 9 hasta la p o s i c
Comentarios de: Clases interesantes (0)
No hay comentarios