I have the following validation:
-consumo: número decimal o entero (por ej: 10.5, 8, 16, 9.5, etc.)
Why do you fail me?
I put the code:
public class Validaciones {
public static boolean validarFecha(String fecha){
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
//setLenient no permite modificar la fecha a una posible válida.
sdf.setLenient(false);
try {
Date d= sdf.parse(fecha);
} catch (ParseException ex) {
Logger.getLogger(Validaciones.class.getName()).log(Level.SEVERE, null, ex);
return false;
}
return true;
}
public static boolean validarMatricula(String matricula){
Pattern pat = Pattern.compile("^[\d]{4}[A-Z]{3}$");
Matcher mat = pat.matcher(matricula);
if (mat.matches()) {
return true;
} else {
return false;
}
}
public static boolean validarBastidor(String bastidor){
Pattern pat = Pattern.compile("^[A-Z0-9]{15}$");
Matcher mat = pat.matcher(bastidor);
if (mat.matches()) {
return true;
} else {
return false;
}
}
public static boolean validarConsumo(double consumo){
Pattern pat = Pattern.compile("^[0-9]+([,\.][0-9]*)?$");
Matcher mat = pat.matcher(consumo);
if (mat.matches()) {
return true;
} else {
return false;
}
}
}
Index.java
if(Validaciones.validarFecha("29-02-2020"))
System.out.println("Fecha valida");
else
System.out.println("Fecha NO valida");
if(Validaciones.validarMatricula("2593HBD"))
System.out.println("Matricula valida");
else
System.out.println("Matricula NO valida");
if(Validaciones.validarBastidor("AAA456789ABCDEF"))
System.out.println("Bastidor valido");
else
System.out.println("Bastidor NO valido");
if(Validaciones.validarConsumo(10.5))
System.out.println("Consumo valido");
else
System.out.println("Consumo NO valido");