Hola, tengo esta funcion, para asignar la letra del dni.
public static String obtenerLetra(int numero) {
//Compruebo que la longitud de numero sea mayor a 8
String numS = Integer.toString(numero);
if(numS.length()!=8) {
System.out.println("El dni debe tener 8 digitos");
}else {
//Letra es la letra que vamos ha adjuntar
String letra;
//Array de las letras
String [] letras = {"T","R","W","A","G","M","Y","F","P","D","X","B","N","J","Z","S","Q","V","H","L","C","K","E"};
//Va a contener la suma del numero
int suma = 0;
//Creo una variable para ir moviendome por el numero, que empieza en la longitud menos 1, porque una vez con el ultimo, ya no tengo que ir mas.
int i =0;
//Resto de num%23
int total = 0;
//Asi, cojo el numero de dcha a izq, lo divido entre 10 y me quedo el resto, que es el numero. Luego recorro el array sumando todas las posiciones
while(numero>0) {
//Total, va sumando los numeros que va cogiendo, y numero, pasa a ser el nuevo numero sin el ultimo digito
suma += numero%10;
numero = numero/10;
i++;
}
System.out.println("Suma"+suma);
total = suma%23;
System.out.println("total"+total);
letra = letras[total];
return letra;
}
return "";
}
No se porque esta mal, no es error de codigo, funciona, pero no me coge la letra que deberia ser, por ejemplo, de este dni, tiene que salir la G y me da la M. 27283064G
Gracias por la ayuda.