Validação de Renavam

1 resposta
V

Olá

Preciso implementar em um sistema uma validação de RENAVAM. Já achei um algoritmo, mas não consegui fazer ele funcionar em java.
Se alguem já tiver alguma rodina pronta, ou poder me ajudar agradeço.

Segue abaixa a rodina que encontrei em VB e a tradução que fiz pra java (se algum puder tb conferir para ver o que posso ter feito errato).

Rotina em VB

Dim Renavam As String
Dim Numeros(5) As String
Dim I, J As Integer
Dim Soma, Valor As Single
Dim Digito As Integer

J = 0

Renavam = txt_renavam.Text

Renavam = Replace(Renavam, "-", "")

For I = 1 To 5
Numeros(I - 1) = Mid(Renavam, I, 1)
Next
For I = 5 To 2 Step -1
Soma = Soma + (Numeros(J) * I)
J = J + 1
Next

Valor = Soma Mod 11

If ((Valor = 1) Or (Valor = 0) Or (Valor >= 10)) Then
Digito = 0
Else
Digito = Valor
End If

Label2.Caption = Digito & " " & Numeros(4) & " " & Soma & " " & Digito

If (Digito = Numeros(4)) Then
MsgBox ("Renavam nº " & Renavam & " Valido!")
Else
MsgBox ("Renavam nº " & Renavam & " Invalido!")
End If

Rotina em Java

public static boolean validaRenavam(String value) {
		int j = 0;
		int soma = 0;

		int[] numeros = new int[5];
		int valor;
		for (int i = 0; i < 5; i++) {
			numeros[i] = Integer.valueOf(value.substring(i, i + 1));
		}

		for (int i = 5; i >= 2; i--) {
			soma = soma + (numeros[j] * i);
			j = j + 1;
		}

		valor = soma % 11;

		int digito;
		if (valor == 1 || valor == 0 || valor >= 10)
			digito = 0;
		else
			digito = valor;

		if (digito == numeros[4])
			return true;
		else
			return false;
	}

1 Resposta

Giulliano

Ao invés de copiar um algoritimo pronto vc poderia buscar qual é a maneira de validar um renavam (se existe isso), da mesma forma como existe uma maneira de validar um CPF, por exemplo.

Aí sim seria mais fácil desenvolver e vc praticaria muito mais a sua lógica

Criado 12 de outubro de 2009
Ultima resposta 12 de out. de 2009
Respostas 1
Participantes 2