Una forma sencilla y rápida de aprender JAVA, observando y deduciendo cómo se comporta el lenguaje a través de ejemplos prácticos.

Archivo del blog

domingo, 25 de diciembre de 2022

Validación DNI de España.

Código java (AI_DniValidator.java):

package ai_dnivalidator;

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class AI_DniValidator {

    private static final String DNI_PATTERN = "^[0-9]{8}[A-Z]$";

    public static boolean isValid(String dni) {
        Pattern pattern = Pattern.compile(DNI_PATTERN);
        Matcher matcher = pattern.matcher(dni);
        if (!matcher.matches()) {
            return false;
        }
        String letras = "TRWAGMYFPDXBNJZSQVHLCKE";
        int modulo = Integer.parseInt(dni.substring(0, 8)) % 23;
        char letraEsperada = letras.charAt(modulo);
        char letraObtenida = dni.charAt(8);
        return letraEsperada == letraObtenida;
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Ingresa un DNI: ");
        String dni = scanner.nextLine().toUpperCase();
        System.out.println(isValid(dni) ? "DNI válido" : "DNI inválido");
    }

}


Resultado:

run:
Ingresa un DNI: 12345678z
DNI válido
BUILD SUCCESSFUL (total time: 5 seconds)

Con la tecnología de Blogger.