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