Jump to content

[JAVA] digito validador del rut


Recommended Posts

hola bueno cabros queria saber si alguien sabe o tiene un codigo maoma censillo(no nesesariamente corto) para verificar el digito validador del rut eso po gracias =D

 

 

 

mira too caso tengo la duda si ingresar el rut como string o int cacho el algoritmo pa la wea pero si es string no kxo si cada multiplicacion parcial tengo ke parsearla o hacer la wea con int y ai si ke me pierdo

Edited by makunaoxi
Link to comment
Share on other sites

aqui lo tienes:

 

 

 

public class ValidaRut {

 

private static String rut;

private static String dv;

 

 

public static String invierteCadena(String s) {

 

String palabra = "";

for (int i = s.length() - 1; i >= 0; i--) {

String letra = String.valueOf(s.charAt(i));

palabra += letra;

 

}

return palabra;

 

}

 

public static void setRut(String valor){rut=valor;}

public static void setDv(String valor){dv=valor;}

 

public static String getRut(){ return(rut);}

public static String getDv(){ return(dv);}

 

 

public static boolean esNumero(String s) {

String Numero = "123456789";

if (Numero.indexOf(s) != -1) {

return true;

} else {

return false;

 

}

 

 

}

 

//para la verificacion se el rut es valido;:

public static boolean esRutValido(String rut) {

if (rut == null || rut.equals("")) {return false;}

else {

rut = rut.replace(".", "");

rut = rut.replace("-", "");

rut = rut.trim();

rut=rut.toLowerCase();

 

dv = String.valueOf(rut.charAt(rut.length() - 1));

int multiplica = 2;

int total = 0;

 

 

for (int i = rut.length() - 2; i >= 0; i--) {

String letra = String.valueOf(rut.charAt(i));

 

try{

int n = Integer.parseInt(letra);

total = (n * multiplica) + total;

multiplica++;

if (multiplica > 7) {

multiplica = 2;

}

 

 

}catch(Exception ex){

return false;

}

 

}

 

int resultado1 = total % 11;

int resultado2 = 11 - resultado1;

String resultadoFinal = String.valueOf(resultado2);

 

if (resultadoFinal.equals("10")) {

resultadoFinal = "k";

 

}

 

if (resultadoFinal.equals("11")) {

resultadoFinal = "0";

 

}

 

if (dv.equals(resultadoFinal)) {

setRut(rut);

setDv(resultadoFinal);

return true;

 

} else {

setRut("");

setDv("");

return false;

}

}

}

 

 

 

 

}

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...