EjemplosDuoc.es.tl
  Rut 2
 
 

Esta es otra manera de verificar el rut en JAVA, mediante los try catch. El uso que se les da es de convertir el String a Integer,
pero, al haber algun caracter no numerico, produce un error de excepcion.
y va el codigo.
//permitira la verificacion del numero del rut retornando un valor boolean
public class VerificarRut {
String rut;
    public VerificarRut(String rut){
        this.rut=rut;
    }
    
    public boolean revisar(){    
        int lar  = rut.length();
        boolean flag =false;
        if (lar>1){
            String nrut;    //se almacenara momentaniamente el numero de rut
            String dig ;    //se almacena el digito verificador
            //el rut siempre tiene el ultimo digito como String
            dig= rut.substring(lar-1,lar);
            //se intentara con el resto del rut sin guion
            nrut= rut.substring(0,lar-1);
            try{
                int nrorut = Integer.parseInt(nrut);//para procesar el numero del rut
                rut=nrut+"-"+dig; //se agrega el guion para luego almacenar en la bd
            }catch (Exception e){
                nrut= rut.substring(0,lar-2);
               try{           
                    int nrorut = Integer.parseInt(nrut);//para procesar el numero del rut
                }catch(Exception ex ){
                    return false;
                }
            }
            //luego de obtener el numero de rut y el digito se procesa
            lar  = nrut.length();
            int[] nro = new int[lar+1];
            for(int i=0;i<lar;i++)
                nro[i]= Integer.parseInt(nrut.substring(i,i+1));
            int res =1;
            for(int i=lar;i>-1;i--){
                nro[i]= nro[i]*res++;
                nro[lar]+=nro[i];
                if (res>7)
                    res=2;
            }
            res=11-nro[lar]%11;
            //se compara los resultados con el digito verificador
            String dvr;
            if (res==11){
                dvr="0";
            }else if (res==10){
                dvr="K";
            }else {
                dvr=String.valueOf(res);
            }
            if (dvr.equalsIgnoreCase(dig))
                flag=true;//rut correcto
        }
        return flag;
    }
}



 
   
 
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis