Санкционировать поле пронумеровало / пронумеровал максимум символы JAVA

У меня есть следующее утверждение:

-consumo: número decimal o entero (por ej: 10.5, 8, 16, 9.5, etc.) 

Почему он бьет козырем меня?

Я помещаю вам код:

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");
0
задан 02.01.2017, 20:10
0 ответов

Я предполагаю, что читать textBox данные или какого-то метода ввода. Так что ты был бы должен перемещать его String в утверждение, так как они конечно прибывают к тебе так и регулярные выражения оценивают цепи символов, например:

  if(Validaciones.validarConsumo("10.A")) //Consumo no valido
  if(Validaciones.validarConsumo("10.5")) //Consumo  valido

И осуществлять функцию перемещая его String также

 public static boolean validarConsumo(String consumo){
        Pattern pat = Pattern.compile("^[0-9]+([,\\.][0-9]*)?$");
        Matcher mat = pat.matcher(consumo);
        if (mat.matches()) {
            return true;
        } else {
            return false;
        }
    }
2
ответ дан 03.12.2019, 17:54

Теги

Похожие вопросы