我想要检查键盘输入,以便验证车牌格式
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();
}我认为正则表达式是可以的,但仍然不能工作。
发布于 2015-10-07 12:25:17
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.");
}
}https://stackoverflow.com/questions/32983566
复制相似问题