Comprobar letra DNI

[aux_code language=»javascript» theme=»tomorrow» title=»Comprobar letra DNI» extra_classes=»»]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

    public static void main(String[] args) {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        System.out.println("Intro DNI y te compruebo si es correcto.");

        int dni;
        // Con String
        String letraS;

        do {
            try {
                System.out.println("Intro sólo nº del DNI");
                //Se omite la comprobación de 8 dígitos para facilitar su introducción
                // ejemplo: 00000013
                // a parte de que los 0 son omitidos por defecto en una división
                dni = Integer.parseInt(br.readLine());
                do {
                    try {
                        System.out.println("Intro sólo la letra del DNI");
                        letraS = br.readLine();
                        if (letraS.isEmpty()) {
                            System.out.println("No has indicado la letra");
                            letraS = "";
                        } else {
                            switch (dni % 23) {
                                case 0:
                                    if (letraS.equalsIgnoreCase("T")) {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 1:
                                    if (letraS.equalsIgnoreCase("R")) {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 2:
                                    if (letraS.equalsIgnoreCase("W")) {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 3:
                                    if (letraS.equalsIgnoreCase("A")) {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 4:
                                    if (letraS.equalsIgnoreCase("G")) {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 5:
                                    if (letraS.equalsIgnoreCase("M")) {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 6:
                                    if (letraS.equalsIgnoreCase("Y")) {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 7:
                                    if (letraS.equalsIgnoreCase("F")) {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 8:
                                    if (letraS.equalsIgnoreCase("P")) {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 9:
                                    if (letraS.equalsIgnoreCase("D")) {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 10:
                                    if (letraS.equalsIgnoreCase("X")) {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 11:
                                    if (letraS.equalsIgnoreCase("B")) {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 12:
                                    if (letraS.equalsIgnoreCase("N")) {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 13:
                                    if (letraS.equalsIgnoreCase("J")) {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 14:
                                    if (letraS.equalsIgnoreCase("Z")) {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 15:
                                    if (letraS.equalsIgnoreCase("S")) {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 16:
                                    if (letraS.equalsIgnoreCase("Q")) {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 17:
                                    if (letraS.equalsIgnoreCase("V")) {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 18:
                                    if (letraS.equalsIgnoreCase("H")) {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 19:
                                    if (letraS.equalsIgnoreCase("L")) {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 20:
                                    if (letraS.equalsIgnoreCase("C")) {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 21:
                                    if (letraS.equalsIgnoreCase("K")) {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 22:
                                    if (letraS.equalsIgnoreCase("E")) {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                default:
                                    System.out.println("El nº del dni y la letra no es correcto");
                                    break;
                            }
                        }
                    } catch (IOException e) {
                        System.out.println("Debes introducir una letra");
                        letraS = "";
                    }
                } while (letraS.isEmpty());
            } catch (IOException | NumberFormatException e) {
                System.out.println("El valor ha de ser numérico");
                dni = 0;
            }
        } while (dni == 0);


        //Con CHAR
        char letraC;

        do {
            try {
                System.out.println("Intro sólo nº del DNI");
                dni = Integer.parseInt(br.readLine());
                do {
                    try {
                        System.out.println("Intro sólo la letra del DNI");
                        //convertimos en mayus
                        letraC = br.readLine().toUpperCase().charAt(0);
                        if (letraC == Character.MIN_VALUE) {
                            System.out.println("No has indicado la letra");
                            letraC = Character.MIN_VALUE;
                        } else {
                            switch (dni % 23) {
                                case 0:
                                    if (letraC == 'T') {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 1:
                                    if (letraC == 'R') {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 2:
                                    if (letraC == 'W') {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 3:
                                    if (letraC == 'A') {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 4:
                                    if (letraC == 'G') {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 5:
                                    if (letraC == 'M') {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 6:
                                    if (letraC == 'Y') {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 7:
                                    if (letraC == 'F') {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 8:
                                    if (letraC == 'P') {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 9:
                                    if (letraC == 'D') {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 10:
                                    if (letraC == 'X') {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 11:
                                    if (letraC == 'B') {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 12:
                                    if (letraC == 'N') {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 13:
                                    if (letraC == 'J') {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 14:
                                    if (letraC == 'Z') {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 15:
                                    if (letraC == 'S') {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 16:
                                    if (letraC == 'Q') {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 17:
                                    if (letraC == 'V') {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 18:
                                    if (letraC == 'H') {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 19:
                                    if (letraC == 'L') {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 20:
                                    if (letraC == 'C') {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 21:
                                    if (letraC == 'K') {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                case 22:
                                    if (letraC == 'E') {
                                        System.out.println("Es correcto");
                                    } else {
                                        System.out.println("No es correcto");
                                    }
                                    break;
                                default:
                                    System.out.println("El nº del dni y la letra no es correcto");
                                    break;
                            }
                        }
                    } catch (StringIndexOutOfBoundsException e) {
                        System.out.println("Debes introducir una letra");
                        letraC = Character.MIN_VALUE;
                    }
                } while (letraC == Character.MIN_VALUE);
            } catch (IOException | NumberFormatException e) {
                System.out.println("El valor ha de ser numérico");
                dni = 0;
            }
        } while (dni == 0);
    }
}
[/aux_code]
Etiquetas: Sin etiquetas

Añadir un comentario

Debes estar conectado para publicar un comentario