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

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.

Você está recebendo a exception pois não é possível converter um número tão grande em inteiro… declare seu atributo como long (assim o Struts fará Long.parseLong ao invés de Integer.parseInt)
O valor máximo de um número inteiro é Integer.MAX_VALUE.

Muito obrigado, é justamente isso.

Fiquei com essa puga na cabeça por um tempo bom, pois alguns números ele aceitava, mas outros como esse, não. Ai eu não identificava o erro.

Muito obrigado mesmo.

Já aproveitando o tópico, gostaria de pedir outra ajuda.

Estou fazendo um sistema de avaliação, e minha avaliação é composta por QUESTÕES, DISCIPLINAS e RESPOSTAS.

Como no Struts 2 tem o <s:radio/> que utiliza a lista Map, para colectar vários resultados necessito criar uma Collection e pegar o codigo que quero. Tudo Ok.

Mas o que mais necessito é de lógica para criar um “contador” que crie os índices para a Collection da Resposta sem repetir.

O código para criar a tabela é o seguinte:

<s:form action="manterAvaliacao" namespace="/manterAvaliacao" method="post">
			<tr class="cabec">
				<th class="nowrap"> Crit&eacute;rios </th>
				<s:iterator value="usuario.disciplinas" status="statusDisciplina" id="disciplinas" >
						<th class="nowrap"><s:property value="%{descricaoDisciplina}"/></th>
				</s:iterator>
			</tr>
			<s:iterator value="modulo.listaQuestoes" status="status" id="questao" >
				<tr class="<s:if test="#status.index%2 == 0 ">even</s:if><s:else>odd</s:else>">
					<td><s:property value="%{descricaoQuestao}"></s:property> </td>
					<s:iterator value="usuario.disciplinas" status="status" id="disciplina">
						<s:radio name="respostas[%{#status.index}].codigoResposta" list="listaRespotasMap" />
					</s:iterator>
				</tr>
			</s:iterator>
			<s:submit key="Avancar" cssClass="butStnd" method="responderAvaliacao" ></s:submit>
		</s:form>

Como estou utilizando o “status.index” toda vez que ele retorna a lista no início, o contador começa novamente.

A tabela é montada apartir das “questões”. uma linha(questão) têm todas as disciplinas que o usuário esta matriculado.

Mas eu quero que todos os “radiobutton” tenham seu próprio índice, pois se tiver igual ele não deixa responder todas as questões.