- Problemas com NumberFormatException -

Eu tenho um campo onde o usuário digita números e nesse campo é o RG da pessoa
O rg das pessoas tem 10 númeos, só que se eu digito 10 ele da erro e se eu digito 9 numeros ele executa direitinho. Vejam como eu to fazendo e o que eu posso mudar pra dar certo:

try{
rgCli = Integer.parseInt(rg.getText());
}catch(NumberFormatException ex){
}

quando digitado 10 numeros ele executa o NumberFormatException!! me ajude por favor ;] vlw!

EDIT (Moderador) - Ponha um título decente para pedir ajuda. Que eu saiba, você não precisa mendigar informação aqui.

Eu (acho) que o numero que vc ta digitando eh maior que uma variavel inteira pode conter.

por exemplo eu fiz um teste aqui e peguei a exception.

java.lang.NumberFormatException: For input string: “12345678991”
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:459)
at java.lang.Integer.parseInt(Integer.java:497)
at teste.main(teste.java:11)
Integer max value is : 2147483647

Se eu tivesse digitado por exemplo 1234567899 funcionaria porque eh menor que o Integer.MAX_VALUE.

Entao o problema nao eh ter ou nao 10 numeros, mas sim o tamanho do numero. Porque dependendo do RG que vc digitar vai ser maior que 2147483647. Faca um teste e digita no seu campo RG 1000000000 vai funcionar.

//Daniel

Caso você queira trabalhar número, trabalhe com o tipo LONG.

rgCli = Long.parseLong(“9999999990”);

O correto é não trabalhar com tipo númerico, pois o RG poderá ser não numérico.
Limite o tamanho do campo para aceitar somente 9 caracteres.

use a seguinte mascara para validar apenas caracteres: ?

pois como disseram o RG não é de apenas numeros

:smiley: vlw ae pessoal! usei tipo long e funcionou direitinho \o/!!!

eu poderia usar o JFormattedTextField, mas mudei de idéia e quis apenas números! vlw mesmo!