Verificar se RG é Válido, ajuda
Olá a todos, eu li no site: [url]http://www.profcardy.com/artigos/rg.php[/url] para ver como o RG é verificado como sendo válido ou não, então tentei fazer o seguinte código:
o JRg é um JFormattedTextField
Mas na hora que eu executo dá o seguinte erro:
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: "33.333.333-3"
Alguém poderia me ajudar? Muito Obrigado
// verifica se o RG é válido em tempo de execução jRg.addFocusListener(new FocusAdapter() { String A,B,C,D,E,F,G,H,I = ""; int a,b,c,d,j,f,g,h,i,resul; public void focusLost(FocusEvent e) { A = jRg.getText().substring(0); B = jRg.getText().substring(1); C = jRg.getText().substring(3); D = jRg.getText().substring(4); E = jRg.getText().substring(5); F = jRg.getText().substring(7); G = jRg.getText().substring(8); H = jRg.getText().substring(9); I = jRg.getText().substring(11); a = Integer.parseInt(A); b = Integer.parseInt(B); c = Integer.parseInt(C); d = Integer.parseInt(D); j = Integer.parseInt(E); f = Integer.parseInt(F); g = Integer.parseInt(G); h = Integer.parseInt(H); i = Integer.parseInt(I); resul = (((2*a)+(3*b)+(4*c)+(5*d)+(6*j)+(7*f)+(8*g)+(9*h)+(10*i))/11)%10; if(resul!=0) { JOptionPane.showMessageDialog(null,"R.G. Inválido", "Informação ", JOptionPane.INFORMATION_MESSAGE); jRg.setText(""); jRg.requestFocus(); } } });
Fabio Volpe
Curtidas 0
Respostas
Giovane Kuhn
09/04/2009
Validar RG ??? hmmm isso me parece beeem estranho, nunca vi uma rotina dessas !
mas vamos lah... seu problema esta no substring... utilize assim:
Flow
A = jRg.getText().substring(0, 1); B = jRg.getText().substring(1, 1); C = jRg.getText().substring(3, 1); ...
GOSTEI 0
Bruno Borges
09/04/2009
num eh por nada, mas nunca vi validacao de RG, principalmente pelo basico:
nao existe PADRAO de RG... :) num eh q nem CPF (q tem ateh formula pra validar os digitos finais)
GOSTEI 0
Bruno Borges
09/04/2009
[quote="do proprio site"]O chamado "Registro Geral" é sempre relativo a um particular órgão emissor, cada qual com a sua regra matemática de autenticidade... Aqui temos a exposição da regra matemática que justifica a composição numérica do dígito do RG, particularmente emitido pela SSP-SP.
Existem numeros de RG que podem conter letras !!! e o pior de tudo, esses numeros podem ser repetidos entre os estados.
Um Abraço,
Dennis
GOSTEI 0
Diego
09/04/2009
OLÁ, PESSOAL...... ESSE CODIGO NÃO ESTA FUNCIONANDO..... SE ALGUEM TIVER OUTRA SUGESTÃO ME AJUDEM.....
GOSTEI 0
Carlos Heuberger
09/04/2009
Oi,
sugestao:
[]]]
private static final String RG_PATTERN = "\\d\\d\\.\\d\\d\\d\\.\\d\\d\\d-\\d"; public static boolean checkRG(String rg) { // rg = "ab.cde.fgh-i" // testar formato (opcional) if (! rg.matches(RG_PATTERN)) { System.err.println(rg + " formato"); return false; } int a = rg.charAt(0) - '0'; int b = rg.charAt(1) - '0'; // . = rg.charAt(2) int c = rg.charAt(3) - '0'; int d = rg.charAt(4) - '0'; int e = rg.charAt(5) - '0'; // . = rg.charAt(6) int f = rg.charAt(7) - '0'; int g = rg.charAt(8) - '0'; int h = rg.charAt(9) - '0'; // - = rg.charAt(10) int i = rg.charAt(11) - '0'; int result = 2*a + 3*b + 4*c + 5*d + 6*e + 7*f + 8*g + 9*h + 100*i; return (result % 11) == 0; }
GOSTEI 0
Tiago Peczenyj
09/04/2009
VC quer validar CPF. RG dependendo do estado pode ter letra até...
GOSTEI 0
Carlos Eduardo
09/04/2009
Gostaria de saber como eu faço para
verificar o numero de um rg que contem letra !
alguem pode me ajudar ?
ateh +
GOSTEI 0
Gabriel Millian
09/04/2009
A melhor coisa a fazer é não validar o RG. Os números mais antigos nem possuem dígito verificador, nem letra nem nada.
GOSTEI 0