Calcular letra de DNI

Hola en este tutorial voy a enseñar a calcular la letra del DNI. No sé si sabrán ustedes, sino yo se los digo, cuando ustedes usáis el DNI, la letra final del DNI no es algo aleatorio, se utiliza para una formula basada en el resto de la division entre 23, cada cifra va a representar una letra, si es 0 es T si es 2 entonces es R, etc. Esto se usa para evitar el fraude en Hoteles o que te inventes un DNI con facilidad.

Pues bueno ya sabemos la teoría, vamos a ir con la práctica, por aquí os dejo el código

public class Calculo {
    String letras =»TRWAGMYFPDXBNJZSQVHLCKE»;
    String [] letrasArray = letras.split(«»);
   
    public String calcularLetra(int numero){
        int calculo;
        String a;
        calculo = numero %23;
        a=letrasArray[calculo]+»»;
        return a;
    }
   
}

y éste es nuestro código principal:

try {
            Scanner scan = new Scanner(System.in);
            int numeroDni;
            String numeroDniStr;
            String letraDniCli;
            String letraDniOri;
            Calculo calc = new Calculo();

            System.out.println(«Ponga número de DNI»);
            numeroDni = scan.nextInt();
            numeroDniStr = numeroDni + «»;
            if (numeroDniStr.length() != 8) {
                throw new Exception(«No tiene la longitud correcta»);
            }

            ///dni de nuestro cliente
            System.out.println(«Digame la letra del DNI»);
            letraDniOri = scan.next();
            letraDniOri = letraDniOri.toUpperCase();

            ///DNI que nos devuelve el la clase
            letraDniCli = calc.calcularLetra(numeroDni);
            System.out.println(letraDniCli + «»);

            if (letraDniCli.equals(letraDniOri.toUpperCase())) {
                System.out.println(«El DNI es correcto»);
            } else {
                System.out.println(«El DNI esta mal escrito»);
            }

           
        } catch (Exception ex) {
            System.out.println(«Ups a habido un error REF.» + ex.toString());
        }

A aquí os muestro mi vídeotutorial:

   
Esto ha sido todo por el tutorial de hoy, espero que hayan aprendido algo y hasta la próxima.

Deja un comentario

Información básica sobre protección de datos Ver más

  • Responsable: Tomas Gonzalez.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

error: Content is protected !!

Descubre más desde InfoGonzalez - Blog de formador e informático

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo

Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad
Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.