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
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
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.
[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?
[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....
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
[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
[/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
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
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
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);