Problema com Integer.parseInt()

tenho o seguinte codigo

aux=cCpf.getText();
            if(aux.equals("") || aux.trim().length()!=11){
                mensagem+="Coloque um Cpf válido \n ";
                erro=true;
            }else{
         
             cpf = Integer.parseInt(aux);
         
            }

nao vejo onde ha algum erro mas me é retornado

Exception in thread “AWT-EventQueue-0” java.lang.NumberFormatException: For input string: “45184597845”

o inteiro cpf nao consegue converter a variavel aux

Um CPF não cabe em um int. Você precisa usar um long, e usar Long.parseLong().

Sério!!!

Quantos algarismos cabem nesses dois tipos de dado?

hahahhahha
valew

Fiquei de cara agora :? :shock: :lol: :lol:

[quote=nakrak]Sério!!!

Quantos algarismos cabem nesses dois tipos de dado?
[/quote]

http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Integer.html#MAX_VALUE

Um int contém valores de -2147483648 a +2147483647
Um long contém valores de -9223372036854775808 a +9223372036854775807

Interessante, obrigado a vcs que reponderam

Apenas mais uma pergunta

E se eu precisar de numeros maiores???

http://java.sun.com/j2se/1.4.2/docs/api/java/math/BigInteger.html

Uma dica, você não deve representar o cpf como numerico pois ele pode começar com o valor 0.

[quote=Oliveira.caio]Uma dica, você não deve representar o cpf como numerico pois ele pode começar com o valor 0.
[/quote]

Então…Um Inteiro ou float que seja 0123 é igual 123?

Parece uma história que ouvi.

Talvez seu sobrinho da segunda série saiba responder essa pergunta… Lembre-se a variável inteira guarda um valor numérico. E para números, o que significam zeros a esquerda?

Só cuidado com a pegadinha:

int x = 043;

O literal 043 não é o número 43 decimal, e sim, o número 43 octal. Isso vale 35 decimal.
Se o 043 veio de um parseInt, ou parseLong, sem problemas, será 43 mesmo.