makunaoxi Posted November 15, 2010 Report Share Posted November 15, 2010 (edited) 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 November 15, 2010 by makunaoxi Link to comment Share on other sites More sharing options...
sherkkan Posted November 16, 2010 Report Share Posted November 16, 2010 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now