Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Librerias JAVA
Librerias JAVA
montenegro@fdi.ucm.es
Contenidos
String y StringBuffer
Nmeros aleatorios
Fechas y horas
Expresiones regulares
Clases genricas
18/Mayo/2012
7. Libreras de Java
Libreras de Java
18/Mayo/2012
7. Libreras de Java
18/Mayo/2012
7. Libreras de Java
18/Mayo/2012
Tipo bsico
Clase
envoltorio
int
char
boolean
long
double
float
short
byte
Integer
Character
Boolean
Long
Double
Float
Short
Byte
7. Libreras de Java
La clase Integer
Constructores:
Integer(int valor)
Integer(String valor)
int getValue()
18/Mayo/2012
7. Libreras de Java
Boxing
Integer x = 5, y = 9;
Unboxing
int z = x + y;
System.out.printf(%s + %s = %d, x, y, z);
18/Mayo/2012
7. Libreras de Java
La clase Character
Constructor:
Character(char valor)
char charValue()
Mtodos de utilidad:
static
static
static
static
static
18/Mayo/2012
boolean isDigit(char c)
boolean isLetter(char c)
boolean isWhiteSpace(char c)
char toLowerCase(char c)
char toUpperCase(char c)
7. Libreras de Java
Contenidos
String y StringBuffer
Nmeros aleatorios
Fechas y horas
Expresiones regulares
Clases genricas
18/Mayo/2012
7. Libreras de Java
La clase String
Mtodos de utilidad:
18/Mayo/2012
7. Libreras de Java
10
10
La clase String
String cadena = "Esto es un ejemplo";
t
System.out.println(cadena.charAt(2));
System.out.println(cadena.indexOf("es")); 5
System.out.println(cadena.toLowerCase()); esto es un ejemplo
System.out.println(cadena.toUpperCase()); ESTO ES UN EJEMPLO
|cadena|
System.out.printf("|%s|", "
cadena
".trim());
18/Mayo/2012
7. Libreras de Java
11
11
La clase StringBuffer
Mtodo append()
Mtodo delete()
Mtodo insert()
18/Mayo/2012
7. Libreras de Java
12
12
Contenidos
String y StringBuffer
Nmeros aleatorios
Fechas y horas
Expresiones regulares
Clases genricas
18/Mayo/2012
7. Libreras de Java
13
13
La clase Random
Paquete java.util.
Representa una secuencia de nmeros
aleatorios.
Constructores:
Random()
Random(long semilla)
Mtodos:
int nextInt(int n)
double nextDouble()
double nextGaussian()
18/Mayo/2012
// Unif. en {0,...,n-1}
// Unif(0,1)
// N(0,1)
7. Libreras de Java
14
14
Contenidos
String y StringBuffer
Nmeros aleatorios
Fechas y horas
Expresiones regulares
Clases genricas
18/Mayo/2012
7. Libreras de Java
15
15
La clase Date
Constructores:
Mtodos:
Date()
Date(long tiempo)
long getTime()
String toString()
18/Mayo/2012
7. Libreras de Java
16
16
La clase GregorianCalendar
GregorianCalendar()
Mtodos:
18/Mayo/2012
7. Libreras de Java
17
17
La clase GregorianCalendar
El argumento campo
del mtodo get()
recibe una de las
constantes definidas
como atributos
estticos 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. Libreras 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. Libreras 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. Libreras de Java
20
20
Contenidos
String y StringBuffer
Nmeros aleatorios
Fechas y horas
Expresiones regulares
Clases genricas
18/Mayo/2012
7. Libreras de Java
21
21
Expresiones regulares
18/Mayo/2012
7. Libreras de Java
22
22
Caracteres admisibles
[^abc]
[a-z]
Carcter de a a z
[a-z0-9]
Carcter de a a z, y de 0 a 9.
Cualquier carcter
\d
Carcter numrico
\D
\s
\S
\w
\W
18/Mayo/2012
a,b,c
7. Libreras de Java
23
23
Captura
Fin de lnea
\b
Lmite de palabra
\A
Inicio de entrada
\G
Fin de entrada
Inicio de lnea
Operadores
Smbolo
XY
Captura
X|Y
XoY
(X)
\nmero
18/Mayo/2012
X seguido de Y
7. Libreras de Java
24
24
Expr
X?
Captura
X*
X cero o ms veces.
X+
X una o ms veces.
X{n}
X repetido n veces.
X{n,}
X{n,m}
X repetido de n a m veces.
18/Mayo/2012
7. Libreras de Java
25
25
Ajuste
(des)?hace
^(des)?hace
[0-9-]{3,}$
\(([0-9]{2,3})\) [0-9-]{3,}
Llama al nmero (91) 234-12-41
1
([0-9]+)\w?Kg\.
7. Libreras de Java
26
26
18/Mayo/2012
Reticentes
X??
X*?
X+?
X{n}?
X{n,}?
X{n,m}?
Posesivos
X?+
X*+
X++
X{n}+
X{n,}+
X{n,m}+
[ab]*b
aabaabaa
[ab]*?b
aabaabaa
[ab]*+b
aabaabaa
7. Libreras de Java
27
27
Ms informacin
http://www.regular-expressions.info
18/Mayo/2012
7. Libreras de Java
28
28
La clase Pattern
Paquete java.util.regex
Sus objetos representan expresiones regulares
compiladas.
Creacin:
Mtodos:
18/Mayo/2012
7. Libreras de Java
29
29
La clase Matcher
Mtodos:
boolean matches()
boolean find()
int start() / int start(int grupo)
int end() / int end(int grupo)
String group() / String group(int grupo)
String replaceAll(String reemplazo)
18/Mayo/2012
7. Libreras de Java
30
30
Ejemplo
import java.util.regex.*;
public class RegexTest
{
private static final String cadena = "+34 918237173\n" +
"+31 628838812\n" +
"+49 3055718080\n";
private static final String regex = "\\+(\\d+)\\s+(\\d+)" ;
public static void main(String[] args) {
Pattern p = Pattern.compile(RegexTest.regex);
Matcher m = p.matcher(RegexTest.cadena);
while (m.find()) {
System.out.printf("Ajuste encontrado desde %d hasta %d\n", m.start(), m.end());
System.out.printf("Prefijo: %s, Telfono: %s\n", m.group(1), m.group(2));
}
}
}
18/Mayo/2012
7. Libreras de Java
31
31
Ejemplo
import java.util.regex.*;
public class RegexTest
{
private static final String cadena = "+34 918237173\n" +
"+31 628838812\n" +
"+49 3055718080\n";
private static final String regex = "\\+(\\d+)\\s+(\\d+)" ;
public static void main(String[] args) {
Pattern p = Pattern.compile(RegexTest.regex);
Matcher m = p.matcher(RegexTest.cadena);
while (m.find()) {
System.out.printf("Ajuste encontrado desde %d hasta %d\n", m.start(), m.end());
System.out.printf("Prefijo: %s, Telfono: %s\n", m.group(1), m.group(2));
}
}
}
m.find() = true
1
18/Mayo/2012
m.end()
7. Libreras de Java
32
32
Ejemplo
import java.util.regex.*;
public class RegexTest
{
private static final String cadena = "+34 918237173\n" +
"+31 628838812\n" +
"+49 3055718080\n";
private static final String regex = "\\+(\\d+)\\s+(\\d+)" ;
public static void main(String[] args) {
Pattern p = Pattern.compile(RegexTest.regex);
Matcher m = p.matcher(RegexTest.cadena);
while (m.find()) {
System.out.printf("Ajuste encontrado desde %d hasta %d\n", m.start(), m.end());
System.out.printf("Prefijo: %s, Telfono: %s\n", m.group(1), m.group(2));
}
}
}
m.find() = true
1
18/Mayo/2012
m.end()
7. Libreras de Java
33
33
Ejemplo
import java.util.regex.*;
public class RegexTest
{
private static final String cadena = "+34 918237173\n" +
"+31 628838812\n" +
"+49 3055718080\n";
private static final String regex = "\\+(\\d+)\\s+(\\d+)" ;
public static void main(String[] args) {
Pattern p = Pattern.compile(RegexTest.regex);
Matcher m = p.matcher(RegexTest.cadena);
while (m.find()) {
System.out.printf("Ajuste encontrado desde %d hasta %d\n", m.start(), m.end());
System.out.printf("Prefijo: %s, Telfono: %s\n", m.group(1), m.group(2));
}
}
}
m.find() = true
1
18/Mayo/2012
7. Libreras de Java
m.end()
34
34
Ejemplo
import java.util.regex.*;
public class RegexTest
{
private static final String cadena = "+34 918237173\n" +
"+31 628838812\n" +
"+49 3055718080\n";
private static final String regex = "\\+(\\d+)\\s+(\\d+)" ;
public static void main(String[] args) {
Pattern p = Pattern.compile(RegexTest.regex);
Matcher m = p.matcher(RegexTest.cadena);
while (m.find()) {
System.out.printf("Ajuste encontrado desde %d hasta %d\n", m.start(), m.end());
System.out.printf("Prefijo: %s, Telfono: %s\n", m.group(1), m.group(2));
}
}
}
m.find() = false
18/Mayo/2012
7. Libreras de Java
35
35
Contenidos
String y StringBuffer
Nmeros aleatorios
Fechas y horas
Expresiones regulares
Clases genricas
18/Mayo/2012
7. Libreras de Java
36
36
Arrays
longitud
origen
posDestino
longitud
destino
18/Mayo/2012
7. Libreras de Java
37
37
Arrays
static
static
static
static
static
static
18/Mayo/2012
7. Libreras de Java
38
38
Arrays
public class ArraysTest
{
public static void main(String[] args) {
int[] arr = new int[10];
Random r = new Random();
for (int i = 0; i < arr.length; i++) {
arr[i] = r.nextInt(100);
}
System.out.println("Array inicial: " + Arrays.toString(arr));
Arrays.sort(arr);
System.out.println("Array ordenado: " + Arrays.toString(arr));
System.out.print("Introduce nmero a buscar: ");
int num = new Scanner(System.in).nextInt();
System.out.print("La bsqueda binaria devuelve: ");
System.out.println(Arrays.binarySearch(arr, num));
}
}
18/Mayo/2012
7. Libreras de Java
39
39
Contenidos
String y StringBuffer
Nmeros aleatorios
Fechas y horas
Expresiones regulares
Clases genricas
18/Mayo/2012
7. Libreras de Java
40
40
18/Mayo/2012
7. Libreras de Java
41
41
Conjuntos
Secuencia (sin duplicados)
No importa orden
Contenedores
18/Mayo/2012
7. Libreras de Java
42
42
Interfaz Collection
boolean add(Object o)
boolean addAll(Collection c)
void clear()
boolean contains(Object o)
boolean isEmpty()
boolean remove(Object o)
int size()
Iterator iterator()
Object[] toArray()
18/Mayo/2012
7. Libreras de Java
43
43
Interfaz Collection
Collection
List
18/Mayo/2012
Set
7. Libreras de Java
44
44
Interfaz List
18/Mayo/2012
7. Libreras de Java
45
45
Implementaciones de List
18/Mayo/2012
7. Libreras de Java
46
46
18/Mayo/2012
7. Libreras de Java
47
47
18/Mayo/2012
7. Libreras de Java
48
48
Interfaz Set
18/Mayo/2012
7. Libreras de Java
49
49
18/Mayo/2012
7. Libreras de Java
50
50
Interfaz Map
18/Mayo/2012
7. Libreras de Java
51
51
Interfaz Map
Mtodos de la interfaz:
void clear()
boolean containsKey(Object clave)
Set entrySet()
Object get(Object clave)
boolean isEmpty()
Set keySet()
void put(Object clave, Object valor)
Object remove(Object clave)
18/Mayo/2012
7. Libreras de Java
52
52
Implementaciones de Map
18/Mayo/2012
7. Libreras de Java
53
53
18/Mayo/2012
7. Libreras de Java
54
54
18/Mayo/2012
7. Libreras de Java
55
55
18/Mayo/2012
7. Libreras de Java
56
56
La interfaz Iterator
public interface Iterator {
public boolean hasNext();
public Object next();
public void remove();
}
Iterator it = c.iterator();
while (it.hasNext())
System.out.println(it.next());
18/Mayo/2012
7. Libreras de Java
57
57
for(Object e : c)
System.out.println(e);
18/Mayo/2012
7. Libreras de Java
58
58
Contenidos
String y StringBuffer
Nmeros aleatorios
Fechas y horas
Expresiones regulares
Clases genricas
18/Mayo/2012
7. Libreras de Java
59
59
Clases genricas
Ventaja: Genericidad.
Desventaja: Los mtodos para acceder a los
elementos de la coleccin devuelven un objeto de
tipo Object es necesaria una conversin
(downcasting) al tipo que nos interese.
7. Libreras de Java
60
60
Clases genricas
Perro p = l.get(0);
18/Mayo/2012
7. Libreras de Java
61
61
Interfaz Collection<E>
boolean add(E o)
boolean addAll(Collection<? extends E> c)
Iterator<E> iterator()
E[] toArray()
Interfaz Iterator<E>
E next()
18/Mayo/2012
7. Libreras de Java
62
62
Interfaz List<E>
E get(int indice)
void set(int indice, E o)
List<E> subList(int inicio, int fin)
Implementaciones de List<E>
ArrayList<E>
LinkedList<E>
18/Mayo/2012
7. Libreras de Java
63
63
Interfaz Map<K,V>
Mtodos de la interfaz:
Set<Map.Entry<K,V>> entrySet()
V get(K clave)
Set<K> keySet()
void put(K clave, V valor)
Implementaciones de Map<K,V>
HashMap<K,V>
TreeMap<K,V>
18/Mayo/2012
7. Libreras de Java
64
64
18/Mayo/2012
7. Libreras de Java
65
65
Referencias
B. Eckel
Thinking in Java (3rd Edition)
Cap. 11 (no incluye Generics!)
P. Deitel, H. Deitel
Java. How to Program (9th Edition)
Cap. 20, 21, 22
M. Naftalin and P. Wadler
Java generics and collections
Documentacin de libreras de Java
http://docs.oracle.com/javase/6/docs/api/
18/Mayo/2012
7. Libreras de Java
66
66