Java - Métodos que permitan validar fechas y correos electrónicos

 
Vista:
sin imagen de perfil

Métodos que permitan validar fechas y correos electrónicos

Publicado por Alejandro (16 intervenciones) el 25/07/2017 01:49:18
Tengo dos clases, una llamada Validar donde tengo un método para validar la entrada de sólo enteros, y otro para validar la entrada de sólo caracteres. Pero necesito otros tres: uno para validar fechas dd/mm/aaaa que son ingresadas por un Scanner de tipo string; otro para validar correos electronicos con @---.com y finalmente uno que valide decimales mayores que cero. Además necesito llamar a estos métodos desde otra clase donde tengo metodos println que le piden los datos al usuario. Los métodos deberán pedir los datos al usuario varias veces hasta lograr que ingrese uno válido. Espero puedan ayudarme, ya intenté siguiendo otros ejemplos pero directamente me tiran un error en tiempo de ejecución o entra en un bucle infinito, o me dice dato no válido pero el programa sigue corriendo como si nada.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Sebastian
Val: 282
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Métodos que permitan validar fechas y correos electrónicos

Publicado por Sebastian (91 intervenciones) el 25/07/2017 04:11:25
Hola!!
Para las fechas podría ser algo así

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
String hour=new Scanner(System.in).next();
 
Pattern pattern = Pattern.compile("^([0-9]{1,2}\\/){2}[0-9]{1,4}$");
Matcher matcher= pattern.matcher(hour);
Calendar dateCalendar= Calendar.getInstance();
 
if(matcher.find()){
	hour=matcher.group();
	String [] numsDate=hour.split("/");
	if( Integer.parseInt(numsDate[2])< 1990){
		System.out.println("Año invalido");
	}else {
		try {
		dateCalendar.setLenient(false);
		dateCalendar.set(Calendar.DAY_OF_MONTH, Integer.parseInt( numsDate[0]));
		dateCalendar.set(Calendar.MONTH, Integer.parseInt( numsDate[1])-1);
		dateCalendar.set(Calendar.YEAR, Integer.parseInt( numsDate[2]));
		Date date = dateCalendar.getTime();
		SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
		System.out.println(sdf.format(date));
		}catch(Exception e) {
			switch(e.getMessage().toString()) {
				case "MONTH":
					System.out.println("El mes es incorrecto");
					break;
				case "DAY_OF_MONTH":
					System.out.println("El dia es incorrecto");
					break;
				default :
					System.out.println("Erro "+e.getMessage());
					break;
			}
		}
	}
}else{
	System.out.println("Error en el formato de la fecha ingresada dd/mm/aaaa "+ hour);
}

Espero te de una idea
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar