Como verificar se o campo tem o numero de caracteres que quero

Pessoal, estou fazendo um cadastro de nome e cpf, estou usando o NumberFormatException pra verificar se é numero ou não, como posso fazer agora pra ver se ele tem o tamanho diferente de 11 caracteres sendo que a variável é int?

vc pode converter pra String e pegar o tamanho:

if(String.valueOf(suaVariavel).length()!=11){
    //sua lógica aqui
}

Editado!

quantidade.toString().length();

Cuidado que o CNPJ do Banco do Brasil é um número que é todo com zeros:
Por exemplo, a sede do Banco do Brasil é 00.000.0000/0001-91.
Se você converteu isso para um número (sei lá por quê) e converter de volta para uma string, vai ter uma string de comprimento 3.

[quote=entanglement]Cuidado que o CNPJ do Banco do Brasil é um número que é todo com zeros:
Por exemplo, a sede do Banco do Brasil é 00.000.0000/0001-91.
Se você converteu isso para um número (sei lá por quê) e converter de volta para uma string, vai ter uma string de comprimento 3.
[/quote]

Estou cadastrando CPF ^^

Edit:

Sei que posso fazer com String, usando o .matches, regex e tal, estava usando try,catch pra tratar erros de numberformatexception, vocês acham melhor fazer com string ? ou tratando o numberformat mesmo ? e qual a diferença?

Verdade não lembrava mais sobre esse detalhe!

Eu disse CNPJ, mas como eu disse, você tem de tomar cuidado porque pode haver CPFs que comecem com um ou mais zeros.

Eu dei um exemplo de um CNPJ com todos os números zeros porque é o mais famoso, mas nada impede de você encontrar um CPF que comece com um ou mais zeros.

Achei um exemplo, que conferi existir na Receita: 006.552.758-51 ( ROBERTO SOARES DE ALMEIDA ).

[quote=kvnallen][quote=entanglement]Cuidado que o CNPJ do Banco do Brasil é um número que é todo com zeros:
Por exemplo, a sede do Banco do Brasil é 00.000.0000/0001-91.
Se você converteu isso para um número (sei lá por quê) e converter de volta para uma string, vai ter uma string de comprimento 3.
[/quote]

Estou cadastrando CPF ^^

Edit:

Sei que posso fazer com String, usando o .matches, regex e tal, estava usando try,catch pra tratar erros de numberformatexception, vocês acham melhor fazer com string ? ou tratando o numberformat mesmo ? e qual a diferença?[/quote]

Não é porque o campo tem somente dígitos que ele é um número. CPF/CNPJ são códigos, e códigos são String’s. O teste infalível para saber se um campo é número ou String: eu posso somar 2 CPF’s ?

Um problema que tive é que, para economizar algum espaço (por exemplo, um banco com dezenas de milhões de clientes), alguns DBAs insistem em definir um campo CPFCNPJ como numérico e capaz de conter tanto um CPF quanto um CNPJ (sem o dígito verificador).
O problema, obviamente, é que é necessário incluir também um flag indicando se o tal número é um CPF ou CNPJ, porque mesmo incluindo o dígito verificador, é possível ter números que sejam ao mesmo tempo CPFs válidos e CNPJs válidos.
Tive de provar que 1/9 dos números possíveis para CPFs válidos são também CNPJs válidos, para ver se o pessoal aprovava a inclusão desse campo que indicava se o número é um CPF ou um CNPJ.

[quote]

Não é porque o campo tem somente dígitos que ele é um número. CPF/CNPJ são códigos, e códigos são String’s. O teste infalível para saber se um campo é número ou String: eu posso somar 2 CPF’s ? [/quote]

Boa lógica!

uma dica: não use NumberFormatException para validar se o valor é um número.

você pode usar expressões regulares ou simplesmente um framework utilitário.

E se você inverter a lógica…
1º - Verifica se a String recebida contém 11 caracteres
SIM - Verifica se é número…
NÃO - Mensagem de erro…