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
[code] 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;
}[/code]