[Resolvido]Atribuir valor com mais de 10 digitos a um Integer

4 respostas Resolvido
T

Estou tentando atribuir um valor a um objeto Integer utilizando o método parseInt, mas sempre que eu utilizo uma string com mais de 10 digitos dá o seguinte erro:

Exception in thread "main" java.lang.NumberFormatException: For input string: "[telefone removido]"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at Teste.main(Teste.java:6)

Existe alguma forma de fazer essa atribuição com valores com mais de 10 digitos?
Muito Obrigado a todos…
Abaixo esta minha classe de teste

public class Teste {
public static void main(String[] args) {
	String materia = "[telefone removido]";
	Integer mat = 0;
	mat = Integer.parseInt(materia);
	System.out.println(mat);
}
}

4 Respostas

staroski
Solucao aceita

O valor máximo de um int é 2 elevado à 31 menos 1, ou seja, [telefone removido].
O número [telefone removido] você só vai conseguir atribuir à um long.
Outra coisa, se você faz parseInt, atribua o resultado à um int e não à um Integer, está desperdiçando processamento e memória.

T

Então a variável “mat” do meu exemplo deveria ser do tipo long?

staroski

Sim.

long mat = Long.parseLong(materia);

T

Muito obrigado, dessa forma deu certo

Criado 20 de setembro de 2017
Ultima resposta 21 de set. de 2017
Respostas 4
Participantes 2