正则表达式java键盘输入

时间:2015-10-07 03:57:56

标签: java

我想检查键盘输入以验证车牌格式

        String formatoPatente = "[A-Za-z]{3}[\\-\\s][0-9]{3}";
    String patente,marca;
    int añoPatentamiento;
    double kilometraje,tamañobaul;
    System.out.println("Ingrese la patente del automovil");
    patente=teclado.nextLine();
    boolean valido = patente.matches(formatoPatente);
    while(!valido){
        System.out.println("Formato invalido de patente. Intente nuevamente.");
        patente=teclado.next();
    }

我认为正则表达式没问题,但仍然无效。

1 个答案:

答案 0 :(得分:0)

next()将读取字符,直到找到空格。因此,在提供的空间之后可能无法读取输入数字。看看下面的代码是否有助于从nextLine读取输入,而nextLine读取完整的行本身。

   Scanner teclado = new Scanner(System.in);
    String formatoPatente = "[A-Za-z]{3}[\\-\\s][0-9]{3}";
    String  inputData, marca;
    int añoPatentamiento;
    double kilometraje, tamañobaul;
    System.out.println("Ingrese la patente del automovil");
    Pattern patente = Pattern.compile(formatoPatente);
    Matcher matcher;
    boolean notMatched = true;
        while(notMatched) {
            inputData = teclado.nextLine();
            matcher = patente.matcher(inputData);
            if(matcher.find()) {
                System.out.println("Match Found");
                notMatched = false;
            } else {
                System.out.println("Formato invalido de patente. Intente nuevamente.");
            }
    }