Integer.parseInt

Boa Tarde
Sou novato em java e gostaria de uma explicacao…
por que eu tenho que fazer a conversao de int para int?
tipo assim…

[code]
int a = Integer.parseInt(args´[0]);
naum consegui entender isso
se alguem puder me ajudar…
agradeço

1 curtida

por que eu tenho que fazer a conversao de int para int?

Vc nao precisa fazer conversao de int para int , somente para tipos diferentes :lol:

não dá pra ter certeza, mas pelo fragmento de código q vc mandou, args[0] é a posição 0 de uma array de String talvez, por isso vc teve que converter com o método parseInt da classe Integer;

ex:

String s = "10";
int i = Integer.parseInt(s);

ou no seu caso

args[0] = "10";
int i = Integer.parseInt (args[0]);

Espero ter ajudado.

Janio.

3 curtidas

[quote=ramilani12] por que eu tenho que fazer a conversao de int para int?

Vc nao precisa fazer conversao de int para int , somente para tipos diferentes :lol: [/quote]

vi isso num exemplo de um livro…
entaum se naum precisar fazer a conversao naum vo colocar o casting?
pq tipo vi em um livro ele usando o pacote javax.swing e p/ isso fazia referencia a uma chamada desse jeito:

int a = Integer.ParseInt;

O codigo eh mais ou menos assim:
soh tem esse atributo::

int num = Integer.parseInt(javax.swing.JOptionPane.showInputDialog("Mensagem");

p/ que isso?

1 curtida

[quote=marcus.xavier06]… e p/ isso fazia referencia a uma chamada desse jeito:

int a = Integer.ParseInt; [/quote]
Isso, deste jeito aí, só dá erro de compilação. Nada mais.
Vc utiliza o Integer.parseInt quando vc quer obter um int a partir de um String. Por exemplo:

String myString = "4152";
int myInt = Integer.parseInt(myString);

Você passa um String por parâmetro pro método parseInt, e ele te retorna um int, que é o valor inteiro representado pelo String que você passou.
Se por acaso o String passado não representar um inteiro (i.e.: “isso não é um número”), o método parseInt lança a exceção NumberFormatException.

String myString = "Isso não é um número";
int myInt = Integer.parseInt(myString);//Isso aqui vai dar pau....
1 curtida

Você não está transformando int em int.
O método estático Integer.parseInt transforma uma String em int.
O método estático showInputDialog retorna uma String. que está sendo jogada no método parseInt pra ser transformada num int.

[]'s

Rodrigo C. A.

//utilizado para transformar uma String para um int
String valor1 = "10";
int valorInt1 = Integer.parseInt(valor1);

//utilizado para transforma um (wrapper) Integer em um primitivo (int)
Integer valor2 = new  Integer(10);
int valorInt2 = valor2.intValue();

//utilizado para transformar um int (primitivo) para um Integer (wrapper)
int valor3 = 1111111111;
Integer valorInt3 = Integer.valueOf(valor3);

porém lembre-se que na jdk5 há autoboxing

bom parceiro int e Integer sao diferentes um aponta para a pilha e outro para o heap… traduzindo um é objeto e outro é um tipo primitivo… sao diferentes… Integer eh o valor de uma variavel de referencia:


Integer meunumero = new Integer(10); // objeto meunumero 

int x = 10; // valor primitivo

salve salve grande Mantu!!! acho q conseguir entender… tb :slight_smile:

[quote=camilolopes]bom parceiro int e Integer sao diferentes um aponta para a pilha e outro para o heap… traduzindo um é objeto e outro é um tipo primitivo… sao diferentes… Integer eh o valor de uma variavel de referencia:


Integer meunumero = new Integer(10); // objeto meunumero 

int x = 10; // valor primitivo

salve salve grande Mantu!!! acho q conseguir entender… tb :slight_smile:
[/quote]

a tah…mais a diferenca mesmo em fazer isso na implementacao de um codigo java qual seria???
porem ainda ficou meio vago a explicação…
ainda naum entendi muito bem

Então vc entende oq é o “Casting” … como todo mundo falou ele é necessario qdo se trata de variáveis primitivas diferentes. … lembrando qdo se trata de objetos ai temos o Autoboxing …

No seu exemplo precisou de um casting para int … pq o objeto JOptionPane.showInputDialog ele recebe uma string como argumento … então por isso q precisa da conversão …

Conversão de String para int …

OK

Falowww

T+

[quote=silva.fernandes]Então vc entende oq é o “Casting” … como todo mundo falou ele é necessario qdo se trata de variáveis primitivas diferentes. … lembrando qdo se trata de objetos ai temos o Autoboxing …

No seu exemplo precisou de um casting para int … pq o objeto JOptionPane.showInputDialog ele recebe uma string como argumento … então por isso q precisa da conversão …

Conversão de String para int …

OK

Falowww

T+[/quote]

oBrigado velho…agora ficou bem claro sobre o que seria o metodo parse mais se eu naum tivesse uma entrada pelo JOption.pane eu naum precisaria fazer uma conversao correto?

Bem … seria mais ou menos …

Vai depender da sua necessidade … vc só tem q saber onde usar o casting …

Variaveis primitivas:

sempre do menor para o maior não irá prescisar … mas se for do maior para o menor ira precisar …

Melhor dizendo … qdo for do menor para o maior … o casting é implicito … qdo for do maior para o menor … vc terá q fazer casting explicito.

Do menor para o maior:
byte>> shot >> int >> long >> double >> float… o casting é implicito
Do maior para o menor:
float >> double >> long >> int >> shot >> byte … o cating tem q ser explicito.

Espero ter sido claro.

Ok

T+

Simplificando:

Você não pode somar letras x)

Quando vc usa uma showInputDialog o usuário digita LETRAS, mesmo que seja 1,2,3,4,5. Todas com um código respectivo da tecla selecionada.
Mas o Java não soma letras (ou seja, caracter do tipo STRING). Ele soma números. Então vc é obrigado a fazer ele entender que o que você quer é somar números que o usuário digitou, fazendo uma CONVERSÃO de tipos. Você pega o valor que você obteve digitado pelo usuário (COM LETRAS X]) e converte em números. ou seja:

MeuNumeroPraSomar = Integer.parseInt(“123”); \As aspas significam que aqueles numeros ainda são letras :slight_smile:

parseInt é um método (ou seja uma ação, um comportamento) da classe Integer (não do numero int, mas da CLASSE Integer) que tem a característica de converter caracteres numéricos (Ou seja, numeros em string digitados pelo usuário ou por qualquer outro motivo) e converter em números “somáveis”, ou seja, inteiros.

Voce converte quando recebe letras “númericas” assim digamos.
Pode ser que você receba dados de um campo de um banco de dados que é string; ou que você tenha por algum motivo, um programa que armazena algo como um salário em String. Sempre que o formato de armazenamento desses números que você esta trabalhando for de Caracteres (String) Você vai ter que converter pra int pra poder calcular.
E é claro, isso vale para o JOptionPane no caso que você apresentou. Mas fique claro: O teclado possui apenas caracteres; Independente de JOptionPane, TextBox ou qualquer outro método de receber dados de um usuário digitando, VAI VIR EM String, e você terá de converter pra calcular ^^

Espero ter te ajudado!
Qualquer coisa só falar.

Um Abraço,

Douglas Vargas

[quote=DouglasVargaS]Simplificando:

Você não pode somar letras x)

Quando vc usa uma showInputDialog o usuário digita LETRAS, mesmo que seja 1,2,3,4,5. Todas com um código respectivo da tecla selecionada.
Mas o Java não soma letras (ou seja, caracter do tipo STRING). Ele soma números. Então vc é obrigado a fazer ele entender que o que você quer é somar números que o usuário digitou, fazendo uma CONVERSÃO de tipos. Você pega o valor que você obteve digitado pelo usuário (COM LETRAS X]) e converte em números. ou seja:

MeuNumeroPraSomar = Integer.parseInt(“123”); \As aspas significam que aqueles numeros ainda são letras :slight_smile:

parseInt é um método (ou seja uma ação, um comportamento) da classe Integer (não do numero int, mas da CLASSE Integer) que tem a característica de converter caracteres numéricos (Ou seja, numeros em string digitados pelo usuário ou por qualquer outro motivo) e converter em números “somáveis”, ou seja, inteiros.

Voce converte quando recebe letras “númericas” assim digamos.
Pode ser que você receba dados de um campo de um banco de dados que é string; ou que você tenha por algum motivo, um programa que armazena algo como um salário em String. Sempre que o formato de armazenamento desses números que você esta trabalhando for de Caracteres (String) Você vai ter que converter pra int pra poder calcular.
E é claro, isso vale para o JOptionPane no caso que você apresentou. Mas fique claro: O teclado possui apenas caracteres; Independente de JOptionPane, TextBox ou qualquer outro método de receber dados de um usuário digitando, VAI VIR EM String, e você terá de converter pra calcular ^^

Espero ter te ajudado!
Qualquer coisa só falar.

Um Abraço,

Douglas Vargas[/quote]

Nosssa…quanta informacao…p/ quem ta acostumado com programacao procedural…eh osso uauAUHAU OO…bom mais pessoal gostei muito de terem me ajudado obrigado mesmo…duvida exclarecidissima…agradeço a todos e o que puder podem contar comigo tbm ok??
abraços e mais uma vez obrigado
Marcus Xavier

Voce so deve fazer conversões para tipos diferentes, se estiver lidando com objeto aí voce deverá fazer um casting do mesmo.

[quote=marcus.xavier06]
Nosssa…quanta informacao…p/ quem ta acostumado com programacao procedural…eh osso uauAUHAU OO…bom mais pessoal gostei muito de terem me ajudado obrigado mesmo…duvida exclarecidissima…agradeço a todos e o que puder podem contar comigo tbm ok??
abraços e mais uma vez obrigado
Marcus Xavier[/quote]

Disponha cara :slight_smile:
Precisando é só falar.
Eu sei como eh… ja sei alguma coisinha mas nada de muito avançado… digamos q eu ainda tou apanhando pra umas JDBC e JSP da vida ^^
Mas a gente ajuda como pode xD

Um Abraço,

Douglas Vargas

Bom dia a todos, esta é uma das primeiras vezes que utilizo este fórum, qualquer deslize que eu cometa me desculpem e por favor me orientem pra que não cometa novamente ok. Estou iniciando em Java, tentando meus primeiros códigos de acordo com o que aprendo em livros e na faculdade, estou com problema no código abaixo:

import javax.swing.JOptionPane;

public class Media {

public static void main ( String args []){
	
	String n1, n2, n3, n4, n5;
	int i1, i2, i3, i4, i5, soma;
	
	
	n1 = JOptionPane.showInputDialog ( " Digite a Primeira Nota: ");
	n2 = JOptionPane.showInputDialog ( " Digite a Segunda Nota: ");
	n3 = JOptionPane.showInputDialog ( " Digite a Terceira Nota: ");
	n4 = JOptionPane.showInputDialog ( " Digite a Quarta Nota: ");
	n5 = JOptionPane.showInputDialog ( " Digite a Quinta Nota: ");
	
	
	n1 = Integer.parseInt(i1);
	n2 = Integer.parseInt(i2);
	n3 = Integer.parseInt(i3);
	n4 = Integer.parseInt(i4);
	n5 = Integer.parseInt(i5);
	
	soma = i1 + i2 + i3 + i4 + i5;
	
	JOptionPane.showMessageDialog (null, soma, " Total ", JOptionPane.INFORMATION_MESSAGE);
}

}

Estou usando o Eclipse e sempre que tento compilar retorna esta mensagem de erro:

The method parseInt(String) in the type Integer is not applicable for the arguments (int)

Por favor, se alguém puder me ajudar agradeço, pois me parece que o código está certo, mas como sou iniciante né…

Bem-vindo ao GUJ. Sempre que for postar código, use a tag code, como descrito aqui:
http://www.guj.com.br/posts/list/50115.java

A menos que tenha uma informação muito relevante, evite responder tópicos tão antigos. Você ressuscitou um tópico de 2006.

Você inverteu as variáveis aqui:

n1 = Integer.parseInt(i1); n2 = Integer.parseInt(i2); n3 = Integer.parseInt(i3); n4 = Integer.parseInt(i4); n5 = Integer.parseInt(i5);

O correto é converter o valor string de n1 para dentro de i1, e assim sucessivamente:

i1 = Integer.parseInt(n1); i2 = Integer.parseInt(n2); i3 = Integer.parseInt(n3); i4 = Integer.parseInt(n4); i5 = Integer.parseInt(n5);