Validador e Gerador de Renavam (Veículos) em Java – Novo Padrão 11 Digitos – A Partir de Abril 2013

Olá Pessoal,

Seguem abaixo 2 classes java para validação e geração de código renavam para veículos:

ValidadorRenavam.java

public class ValidadorRenavam {

    public boolean validarRenavam(String renavam){
        if(!renavam.matches("[0-9]{11}")){
            return false;
        }
        int soma = 0;
        for (int i = 0; i < 10; i++) {
            soma += Integer.parseInt(renavam.substring(i,i+1))*(i+2);
        }
        soma = soma % 11;
        int ultimoDigito = (soma == 10 ? 0 : soma);
        int digitoInformado = Integer.valueOf(renavam.substring(renavam.length()-1, renavam.length()));
        if(ultimoDigito == digitoInformado){
            return true;
        }
        return false;
    }
}

GeradorRenavam.java

import java.util.Random;

public class GeradorRenavam {

	public static void main(String[] args) throws Exception {
		int maximo = 0;
		try {
			maximo = Integer.valueOf(args[0]);
		} catch (Exception e) {
			throw new Exception("Especifique um valor de entrada válido");
		}
		for (int i = 0; i < maximo; i++) {
			String renavam = GeradorRenavam.geraNumeroRenavam();
			System.out.println(renavam);
		}
	}

	public static String geraNumeroRenavam() {
		Random r = new Random();
		String senha = "";
		for (int i = 0; i < 10; i++) {
			senha += Math.abs(r.nextInt(9));
		}
		int soma = 0;
		for (int i = 0; i < 10; i++) {
			soma += Integer.parseInt(senha.substring(i, i + 1)) * (i + 2);
		}
		soma = soma % 11;
		int ultimoDigito = (soma == 10 ? 0 : soma);
		return senha + ultimoDigito;
	}
}

Créditos deste Post para ViniGodoy: Link : http://www.guj.com.br/posts/list/149379.java

Espero que ajude alguém, …
Abraços.

Victor Jabur.

Follow

Get every new post delivered to your Inbox.

Join 452 other followers