Formatear Rut


Les traigo un modo de dar formato a los rut, el resultado es algo asi

Antes -> 172078567

Rut Formateado -> 17.207.856-7

/**
 *
 * @author PabloRuiz
 */
public class FormatoRut {

    public String getRutFormato(String rut) throws Exception {
        String FRut[] = new String[5];

        if (String.valueOf(rut).length() == 9) {
            FRut[0] = String.valueOf(rut).substring(0, 2);
            FRut[1] = String.valueOf(rut).substring(2, 5);
            FRut[2] = String.valueOf(rut).substring(5, 8);
            FRut[3] = String.valueOf(rut).substring(8, 9);
        }

        if (String.valueOf(rut).length() ==  8 )  {
            FRut[0] = String.valueOf(rut).substring(0, 1);
            FRut[1] = String.valueOf(rut).substring(1, 4);
            FRut[2] = String.valueOf(rut).substring(4, 7);
            FRut[3] = String.valueOf(rut).substring(7, 8);
        }
        return String.valueOf(FRut[0] + "." + FRut[1] + "." + FRut[2] + "-" + FRut[3]);
    }

}

Lo usamos de la siguiente manera:

public static void main(String[] args) throws Exception {
        FormatoRut a = new FormatoRut();
        System.out.println("Formato: "+a.getRutFormato("17207856k"));
    }

Saludos!