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]
Comprobar letra DNI
con
No hay comentarios
[aux_code language=»javascript» theme=»tomorrow» title=»Comprobar letra DNI» extra_classes=»»]