Aquí va un poco de código, aún nose como darle formato con el wordpress…. es un código simple, para el ramo de Taller de Programación II, pero sirve para darse una idea. Lo que hace es tomar el la parte numérica del rut, es decir, lo que esta a la izquierda del guion, invertirlo para después aplicar el calculo del modulo 11. Se agradecen todo tipo de criticas destructivas
//metodos
private String getStringInv(String numero){ //invertir la cadena que recibe el rut
String cadenaInvertida=”";//creamos una cadena vacia
for(int i=numero.length()-1;i>=0;i–){// Se invierte la cadena
cadenaInvertida=cadenaInvertida+numero.charAt(i);}//se le asigna el valor invertido a la cadena
return cadenaInvertida;//retorna a la cadena invertida
}
public char getDVvalido(String numrut){
String numeroInvertido=this.getStringInv(numrut);//String invertido
int suma=0;//se le asignara el valor de la suma
int secuencia=2;//numero por el cual multiplicaremos cada digito de la cadena
int digito=0;//resultado del calculo de id
char DV = 0;//Resultado que retornara
for(int x=0;x<numeroInvertido.length();x++){//recorre la cadena invertida
//sumatoria del caracter numerico de la posicion x de la cadena invertida multipicada por secuencia
suma=suma+(Character.getNumericValue(numeroInvertido.charAt(x))*secuencia);
secuencia++;//se aumenta la secuencia en 1
if(secuencia==8)//si la secuencia llega a 8
secuencia=2;//secuencia vuelve a 2
digito=11-(suma%11);//digito sera= 11 – (el resto de la suma divido en 11 )
}
if(digito==11){
DV=’0′;}
if(digito==10){
DV=’k';}
if(digito<10){
DV=Character.forDigit(digito, 10);}
return DV;// retorna el resultado final
}
Después sería solo cosa de comparar el dv obtenido por “getDVvalido” con el ingresado por el usuario