正则表达式java键盘输入

正则表达式java键盘输入,java,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.next

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

        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();
    }
我认为正则表达式还可以,但仍然不起作用。

next()将读取字符,直到找到空格为止。因此,输入的数字可能无法在提供的空间后读取。查看下面的代码是否有助于从读取完整行本身的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.");
            }
    }

你说的“正则表达式没问题”是什么意思?它应该验证什么?详细说明。3个字母大写与否,一个空格和3个数字你可以有3个数字,没有任何字母?这是一个正确格式的示例。AAA 111或bbb 222我假设这是两个示例。对吗?