Librerías de Java
Java y Servicios Web I
Master en Ingeniería Matemática
Manuel Montenegro
Dpto. Sistemas Informáticos y Computación
Desp. 467 (Mat)
[email protected]
Contenidos
● Clases envoltorio: Integer, Character, …
● String y StringBuffer
● Números aleatorios
● Fechas y horas
● Expresiones regulares
● Utilidades con arrays
● Java Collections Framework
● Clases genéricas
18/Mayo/2012
7. Librerías de Java
2
2
Librerías de Java
● El entorno BlueJ permite crear instancias de
las clases contenidas en la librería de Java
18/Mayo/2012
7. Librerías de Java
3
3
Clases envoltorio (wrapper)
● En ocasiones es útil tratar los tipos de datos
básicos como objetos.
● int, char, boolean, byte, float, double, …
● Muchas funciones y clases trabajan con
elementos que heredan de la clase Object.
● No funcionarán directamente con estos tipos
básicos.
● Existe una clase envoltorio por cada tipo
básico. Cada una tiene un único atributo, que
es del tipo básico al que “envuelven”.
18/Mayo/2012
7. Librerías de Java
4
4
Clases envoltorio (wrapper)
Tipo básico
int
char
boolean
long
double
float
short
byte
Clase
envoltorio
Integer
Character
Boolean
Long
Double
Float
Short
Byte
18/Mayo/2012
7. Librerías de Java
5
5
La clase Integer
● Constructores:
● Integer(int valor)
● Integer(String valor)
● Método de acceso al valor básico:
● int getValue()
● String toString() (heredado de Object)
Integer x = new Integer(5), y = new Integer(9);
int z = x.intValue() + y.intValue();
System.out.printf(“%s + %s = %d”, x, y, z);
18/Mayo/2012
7. Librerías de Java
6
6
Boxing y Unboxing automáticos
● Desde la versión 5 de Java, se convierte
automáticamente entre las clases envoltorios
y sus correspondientes tipos básicos.
● Si se introduce un tipo básico donde se espera un
objeto de una clase envoltorio, se llama al
constructor correspondiente (boxing).
● Si se introduce un objeto de una clase envoltorio
donde se espera un tipo básico, se llama al método
de acceso correspondiente (unboxing).
Integer x = 5, y = 9;
int z = x + y;
System.out.printf(“%s + %s = %d”, x, y, z);
Unboxing
Boxing
18/Mayo/2012
7. Librerías de Java
7
7
La clase Character
● Constructor:
● Character(char valor)
● Método de acceso al valor básico:
● char charValue()
● String toString() (heredado de Object)
● Métodos de utilidad:
● static boolean isDigit(char c)
● static boolean isLetter(char c)
● static boolean isWhiteSpace(char c)
● static char toLowerCase(char c)
● static char toUpperCase(char c)
18/Mayo/2012
7. Librerías de Java
8
8
Contenidos
● Clases envoltorio: Integer, Character, …
● String y StringBuffer
● Números aleatorios
● Fechas y horas
● Expresiones regulares
● Utilidades con arrays
● Java Collections Framework
● Clases genéricas
18/Mayo/2012
7. Librerías de Java
9
9
La clase String
● Métodos de utilidad:
● char charAt(int indice)
● int compareTo(String otra)
● int compareToIgnoreCase(String otra)
● int indexOf(String str)
● int indexOf(String str, int inicio)
● int length()
● String substring(int inicio, int fin)
● String toUpperCase()
● String toLowerCase()
● String trim()
18/Mayo/2012
7. Librerías de Java
10
10
La clase String
String cadena = "Esto es un ejemplo";
System.out.println(cadena.charAt(2));
System.out.println(cadena.indexOf("es"));
System.out.println(cadena.toLowerCase());
System.out.println(cadena.toUpperCase());
System.out.printf("|%s|", " cadena ".trim());
5
t
esto es un ejemplo
ESTO ES UN EJEMPLO
|cadena|
18/Mayo/2012
7. Librerías de Java
11
11
La clase StringBuffer
● Los objetos de la clase String son inmutables.
● No pueden cambiarse una vez creados.
● Un objeto StringBuffer puede ser modificado
tras su creación.
● Método append()
● Método delete()
● Método insert()
● …
● En el caso de cadenas mutables, es más
eficiente que crear Strings desde cero.
18/Mayo/2012
7. Librerías de Java
12
12
Contenidos
● Clases envoltorio: Integer, Character, …
● String y StringBuffer
● Números aleatorios
● Fechas y horas
● Expresiones regulares
● Utilidades con arrays
● Java Collections Framework
● Clases genéricas
18/Mayo/2012
7. Librerías de Java
13
13
La clase Random
● Paquete java.util.
● Representa una secuencia de números
aleatorios.
● Constructores:
● Random()
● Random(long semilla)
● Métodos:
● int nextInt(int n) // Unif. en {0,...,n-1}
● double nextDouble() // Unif(0,1)
● double nextGaussian() // N(0,1)
18/Mayo/2012
7. Librerías de Java
14
14
Contenidos
● Clases envoltorio: Integer, Character, …
● String y StringBuffer
● Números aleatorios
● Fechas y horas
● Expresiones regulares
● Utilidades con arrays
● Java Collections Framework
● Clases genéricas
18/Mayo/2012
7. Librerías de Java
15
15
La clase Date
● Sus instancias almacenan una fecha y una hora.
● Constructores:
● Date()
● Date(long tiempo)
● Métodos:
● long getTime()
● String toString()
● Los valores long indicados en el constructor indican
el número de milisegundos transcurridos desde el
1 de Enero de 1970, 00:00:00 GMT.
18/Mayo/2012
7. Librerías de Java
16
16
La clase GregorianCalendar
● Permiten convertir la fecha/hora contenida en
un objeto Date a una representación
estructurada en dia, mes, año, horas, minutos,
segundos, etc.
● Constructor:
● GregorianCalendar()
● Métodos:
● void setTime(Date date)
● int get(int campo)
18/Mayo/2012
7. Librerías de Java
17
17
La clase GregorianCalendar
● El argumento campo
del método get()
recibe una de las
constantes definidas
como atributos
estáticos en la clase
GregorianCalendar.
Campos disponibles
GregorianCalendar.ERA
GregorianCalendar.YEAR
GregorianCalendar.MONTH
GregorianCalendar.DAY_OF_MONTH
GregorianCalendar.DAY_OF_WEEK
GregorianCalendar.WEEK_OF_YEAR
GregorianCalendar.HOUR
GregorianCalendar.HOUR_OF_DAY
GregorianCalendar.MINUTE
GregorianCalendar.SECOND
GregorianCalendar.MILLISECOND
…
18/Mayo/2012
7. Librerías de Java
18
18
Ejemplo
import java.util.*;
public class DateTest
{
public static void main(String[] args) {
Date d = new Date();
System.out.printf("Tiempo EPOCH: %d\n", d.getTime());
System.out.printf("Equivale a: %s\n", d.toString());
GregorianCalendar gc = new GregorianCalendar();
gc.setTime(d);
System.out.printf("La fecha actual es: %d/%d/%d",
gc.get(GregorianCalendar.DAY_OF_MONTH),
gc.get(GregorianCalendar.MONTH) + 1,
gc.get(GregorianCalendar.YEAR));
}
}
18/Mayo/2012
7. Librerías de Java
19
19
Ejemplo
import java.util.*;
public class DateTest
{
public static void main(String[] args) {
Date d = new Date();
System.out.printf("Tiempo EPOCH: %d\n", d.getTime());
System.out.printf("Equivale a: %s\n", d.toString());
GregorianCalendar gc = new GregorianCalendar();
gc.setTime(d);
System.out.printf("La fecha actual es: %d/%d/%d",
gc.get(GregorianCalendar.DAY_OF_MONTH),
gc.get(GregorianCalendar.MONTH) + 1,
gc.get(GregorianCalendar.YEAR));
}
}
18/Mayo/2012
7. Librerías de Java
20
20
Contenidos
● Clases envoltorio: Integer, Character, …
● String y StringBuffer
● Números aleatorios
● Fechas y horas
● Expresiones regulares
● Utilidades con arrays
● Java Collections Framework
● Clases genéricas
18/Mayo/2012
7. Librerías de Java
21
21
Expresiones regulares
● Una expresión regular es un patrón que
describe un conjunto de cadenas.
● Por ejemplo:
● [gm]ato describe las palabras “gato” y “mato”.
● \d\d\d describe una secuencia de tres dígitos.
● (des)?atar describe las palabras “desatar” y
“atar”.
● [A-Z][a-z]* describe una palabra que comienza
con letra mayúscula.
18/Mayo/2012
7. Librerías de Java
22
22
Sintaxis de expresiones regulares
Símbolo
[abc]
[^abc]
[a-z]
[a-z0-9]
.
\d
\D
\s
\S
\w
\W
Clases de caracteres
Caracteres admisibles
a,b,c
Cualquier carácter excepto a,b,c
Carácter de a a z
Carácter de a a z, y de 0 a 9.
Cualquier carácter
Carácter numérico
Carácter no numérico (= [^\d])
Carácter blanco, tabulador, salto de línea, etc.
Carácter no blanco, tabulador, salto de línea, etc.
Carácter alfanumérico, o símbolo de subrayado.
Carácter no alfanumérico, ni símbolo de subrayado
18/Mayo/2012
7. Librerías de Java
23
23
Sintaxis de expresiones regulares
Símbolo
^
$
\b
\A
\G
Símbolo
XY
X|Y
(X)
\número
Capturadores de límites
Captura
Inicio de línea
Fin de línea
Límite de palabra
Inicio de entrada
Fin de entrada
Operadores
Captura
X seguido de Y
X o Y
Agrupamiento: X como un grupo de captura
Referencia a grupo de captura anterior
18/Mayo/2012
7. Librerías de Java
24
24
Sintaxis de expresiones regulares
Expr
X?
X*
X+
X{n}
X{n,}
X{n,m}
Cuantificadores
Captura
X una vez, o ninguna.
X cero o más veces.
X una o más veces.
X repetido n veces.
X repetido n veces o más.
X repetido de n a m veces.
● Si se quiere capturar literalmente uno de los
caracteres especiales, ha de introducirse
precedido por el carácter especial \.
● Por ejemplo, \( captura el carácter (.
18/Mayo/2012
7. Librerías de Java
25
25
Sintaxis de expresiones regulares
Expresión regular
Ajuste
(des)?hace
hacer por deshacer.
1
^(des)?hace
hacer por deshacer.
[0-9-]{3,}$
Llama al número 91-234-12-41
\(([0-9]{2,3})\) [0-9-]{3,}
([0-9]+)\w?Kg\.
([cb]at)\1
Llama al número (91) 234-12-41
1
Yo peso 63 Kg. y mi mujer 24Kg.
1
1
catbat, but batbat
1
18/Mayo/2012
7. Librerías de Java
26
26
Sintaxis de expresiones regulares
Cuantificadores (II)
Voraces
X?
X*
X+
X{n}
X{n,}
X{n,m}
Reticentes Posesivos
X??
X*?
X+?
X{n}?
X{n,}?
X{n,m}?
X?+
X*+
X++
X{n}+
X{n,}+
X{n,m}+
[ab]*b
aabaabaa
[ab]*?b
aabaabaa
[ab]*+b
aabaabaa
Intenta ajustar la cadena total. Si no es posible,
retrocede hasta lograr un ajuste.
Intenta ajustar la cadena vacía. Si no es posible,
avanza hasta log
Comentarios de: Librerías de Java - Java y Servicios Web I - Master en Ingeniería Matemática (0)
No hay comentarios