Las clases en Java para la creación de una expresión regular son la clase Pattern y la clase Matcher.
Breve explicación de la clase Pattern y la clase Matcher.
La clase Pattern se utiliza para crear el patrón. Por ejemplo para establecer el patrón de un Dni (7-8 números y una letra final) se utilizaría la siguiente sentencia.
La clase Matcher compara el patrón con la cadena. Contiene el método matches() que recibe como parámetro el String a validar y devuelve true si coincide con el patrón y false en caso contrario. Siguiendo con el ejemplo anterior el código continuaría de la siguiente forma:
El objeto mat devolverá true porque sí que cumple con el patrón ya que tiene 7 números y un letra.
Bien, ahora veamos el código del programa completo para que funcione tal cual hemos descrito:
}
Pattern pat = Pattern.compile("[0-9]{7,8}[A-Za-z]");
La clase Matcher compara el patrón con la cadena. Contiene el método matches() que recibe como parámetro el String a validar y devuelve true si coincide con el patrón y false en caso contrario. Siguiendo con el ejemplo anterior el código continuaría de la siguiente forma:
Matcher mat = pat.matcher("4258965P");
El objeto mat devolverá true porque sí que cumple con el patrón ya que tiene 7 números y un letra.
Bien, ahora veamos el código del programa completo para que funcione tal cual hemos descrito:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.Scanner;
public class DniCorrecto {
public static void main(String[] args) {
String dniIntroducido = null;
Scanner miScanner = new Scanner(System.in);
Pattern pat = Pattern.compile("[0-9]{7,8}[A-Z a-z]");
//Matcher mat = pat.matcher(dniIntroducido);
System.out.print("Introduce un Dni correcto: ");
dniIntroducido = miScanner.nextLine();
Matcher mat = pat.matcher(dniIntroducido);
while(!mat.matches()){
System.out.println("El Dni introducido es incorrecto, por favor "
+ "introduzca un Dni válido.");
System.out.print("Introduce un Dni correcto:");
dniIntroducido = miScanner.nextLine();
mat = pat.matcher(dniIntroducido);
}
System.out.println("Bien, el Dni " + dniIntroducido + " es un Dni válido");
}
}
No hay comentarios:
Publicar un comentario