donpandix
6/27/2017 - 9:42 PM

Valida RUT con Java

Valida RUT con Java

/**
 * Validación de RUT Chileno
 * algoritmo Modulo 11
 */ 
public class CommonFn {
	
	/**
	 *  Valida rut de la forma XXXXXXXX-X 
	 */
	public static Boolean validaRut ( String rut ) {
		Pattern pattern = Pattern.compile("^[0-9]+-[0-9kK]{1}$");
		Matcher matcher = pattern.matcher(rut);
		if ( matcher.matches() == false ) return false;
		String[] stringRut = rut.split("-");
		return stringRut[1].toLowerCase().equals(CommonFn.dv(stringRut[0]));
	}
	
	/**
	 * Valida el dígito verificador
	 */
	public static String dv ( String rut ) {
		Integer M=0,S=1,T=Integer.parseInt(rut);
		for (;T!=0;T=(int) Math.floor(T/=10))
			S=(S+T%10*(9-M++%6))%11;
		return ( S > 0 ) ? String.valueOf(S-1) : "k";		
	}
	
}