Java.lang.NumberFormatException: For input string: "16099117464"

Olá. estou com um problema no momento de converter uma string em inteiro.

Estou utilizando o Struts 2 e pegando em um campo textfield uma string toda numérica e tentando transformar para inteiro, mas acontece o erro java.lang.NumberFormatException: For input string: “16099117464”.

Já olhei na net e os erros são pq tinha um caracter qualquer no meio dos números, mas no meu caso não tem, nem vazio, pois uso o “trim()” para retirar os caracteres vazios.

Já utilizei try{}catch(NumberFormatException f), mas não adiantou.

Sempre acontece o mesmo erro.

Se puderem me ajudar, agradeço.

Oi,

Como você mesmo já verificou é problema de conversão…posta o trexo do código.

ps. Tem várias mensagens iguais sua.

O código é o seguinte:

getUsuario().setMatricula(Integer.toString(getUsuario().getMatriculaAux().trim()));

setMatricula(int i)

setMatriculaAux(String s)

também tentei da seguinte forma:

try {
   getUsuario().setMatricula(Integer.toString(getUsuario().getMatriculaAux().trim()));
} catch(NumberFormatException f) {
   f.printStackTrace();
}

Desde já, Obrigado pela ajuda

Um erro, na realidade ta assim


getUsuario().setMatricula(Integer.parseInt(getUsuario().getMatriculaAux().trim()));  
 
setMatricula(int i)  
  
setMatriculaAux(String s)

[quote=solimar]Um erro, na realidade ta assim

[code]

getUsuario().setMatricula(Integer.parseInt(getUsuario().getMatriculaAux().trim()));

setMatricula(int i)

setMatriculaAux(String s)

[/code][/quote]

Revisa esse fonte direito, isso ai não compila…e coloca também o stacktrace.

Desculpe, mas na realidade os set’s só foram para demostrar que o “matricula” recebe int e o “matriculaAux” recebe String.

O código esta correto, é esse mesmo que te passei pela segunda vez.

Esse getUsuario().getMatriculaAux(), é preenchido pelo Struts.

getUsuario().setMatricula(Integer.parseInt(getUsuario().getMatriculaAux()));

ou

try {

} catch(NumberFormatException f) {
  f.printStackTrace();
}

o numero 16099117464 eh grande demais p/ um tipo int. eh so mudar o tipo…por exemplo, double d = 16099117464.0;

Muito obrigado.

Aproveitando a resposta, se puder me ajudar em outra dúvida, agradeço

http://www.guj.com.br/posts/list/102026.java