Boletín 504. Expresiones regulares
En este boletín crearemos nuestras primeras expresiones regulares para llevar a cabo validaciones de datos.
Ejercicios
Ejercicio 1. Sigue los siguientes pasos:
- Crea una clase
ExcepcionFechaInvalidaque herede deException:- Crea un constructor que permita un mensaje personalizado.
- Escribe una clase
Dia:- Almacenará un determinado día.
- Crea un método
boolean comprobarFormatoDia(String dia)que indique si es una fecha válida con el formatodd/MM/yyyy. Ten en cuenta que el día puede venir en uno o dos dígitos, al igual que el mes. En cuanto al año, este puede representarse en 2 o 4 dígitos. - Crea un método
String cambiarFormato(String dia)que, para un formato donde el día puede venir en uno o dos dígitos, al igual que el mes, y el año puede venir en 2 o 4 cifras, lo devuelva en el siguiente formato:dd/MM/yyyy. NOTA: Si el año viene con solo 2 números, este corresponde al siglo XX. - Documenta los métodos.
- Crea un constructor que reciba un día en formato cadena de texto. Este lanzará la excepción
ExcepcionFechaInvalidasi este parámetro no tiene el formato que comprueba el métodoboolean comprobarFormatoDia(String dia). Almacenará dicha fecha como unStringcon el formatodd/MM/yyyy. - Documenta los constructores.
- Redefine el método
toString()con el formato<dd/MM/yyyy>.
- Realiza un programa principal que:
- Crea un
ArrayListdeDia. - Crea un objeto
Diapara cada una de las siguientes fechas del siguiente vector. Aquellas que tengan el formato correcto añádelas a la lista anterior.String[] fechas = {
"2024-06-15",
"15/06/2024",
"6/15/2024",
"15-06-2024",
"2024.06.15",
"15/6/2015",
"15.06.24",
"15 Junio 2024",
"Junio 15, 2024",
"2024/06/15",
"1/1/2000",
"15 de Junio de 2024",
"31/04/99",
}; - Recorre la lista e imprime todas las fechas correctas.
- Crea un
Ejercicio 2. Sigue los siguientes pasos:
- Crea una clase
EmailInvalidoExceptionque herede deException:- Crea un constructor que permita un mensaje personalizado.
- Escribe una clase
Email:- Almacenará un atributo para el correo electrónico.
- Crea un método
boolean comprobarEmail(String email)que indique si es un correo electrónico válido utilizando expresiones regulares. - Crea un método
String getDominio()que devuelva el dominio del correo electrónico utilizando expresiones regulares. - Crea un método
String getCuenta()que devuelva la cuenta del correo electrónico utilizando expresiones regulares. - Crea un método
String getMessageError(String email)que devuelva el mensaje de error:"Esta cadena no es un correo: <email>". - Crea un setter para la cuenta de correo. Este lanzará la excepción
EmailInvalidoExceptionsi este parámetro es un email inválido. Utiliza el método anterior para crear el mensaje de error y el métodoboolean comprobarEmail(String email)para realizar la comprobación del correo electrónico. - Documenta los métodos.
- Crea un constructor que reciba un correo electrónico. No captures la excepción dentro.
- Documenta los constructores.
- Redefine el método
toString()con el formato<dominio>: <cuenta>.
- Crea la clase
EmailInstitutoque herede deEmail:- Redefine el método
boolean comprobarEmail(String email)para que compruebe que es un email correcto del dominioies.edu. - Redefine el método
String getMessageError(String email)que devuelva el mensaje de error:"Esta cadena no es un correo del instituto: <email>". - Crea un constructor que reciba un correo electrónico y utiliza el constructor de la clase padre.
- Redefine el método
- Realiza un programa principal que:
- Crea un
ArrayListdeEmail. - Crea un
ArrayListdeEmailInstituto. - Crea los siguientes objetos para la clase
EmailyEmailInstitutocon los siguientes datos y añádelos a las dos listas anteriores según corresponda. Si se lanza una excepción, imprime el mensaje de la excepción por pantalla.Número Correo Electrónico 1 maria.gomez@ies.edu 2 juan.perez@gmail.com 3 laura.fernandez@ies.edu 4 laura.fernandezies.edu 5 carlos.rodriguez@yahoo.com 6 ana.martinez@ies.edu 7 pedro.lopez@hotmail.com 8 sofia.rivas@ies.edu 9 miguel.vazquez@outlook.com 10 paula.castro@ies.edu 11 david.sanchez@protonmail.com 12 david.sanchez@protonmail - Recorre la lista de emails e imprime todos los emails.
- Recorre la lista de emails del Instituto e imprime todos los emails.
- Crea un