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.
Gracias por visitar mi blog de informática, mi nombre es Tomás y soy formador y desarrollador web. Si quiere usted dejarme alguna sugerencia, ayuda o quiere un servicio de formación estoy escuchando ofertas en tomas.gonzalez@infogonzalez.com, en Facebook a https://www.facebook.com/Infogonzalez estoy deseando escucharle. Su duda o sugerencia NO molesta.