Validador e Gerador de Renavam (Veículos) em Java – Novo Padrão 11 Digitos – A Partir de Abril 2013
28/05/2010 9 Comments
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.





