Olá pessoal,
sei que já tem várias dúvidas em relação à transformação de string para inteiro aqui no fórum, mas mesmo lendo algumas delas, não consegui resolver meu problema.
Gostaria de receber do usuário um número entre 1 e 10 utilizando a classe scanner.
Se eu recebo com o joption.Pane, ele converte a string em inteiro sem problemas como mostra o código abaixo:
procura=JOptionPane.showInputDialog("Qual o número?");intaux;aux=Integer.parseInt(procura);
Agora, se eu tento fazer com a classe Scanner, o programa dá erro e nem compila. O código é o seguinte:
num é um vetor de inteiros. Tetei colocar direto pro vetor, tentei também usando uma variável auxilixar como mostra acima, mas mesmo assim não deu certo.
Quem puder me ajudar, eu agradeço.
publicclassTeste{publicTeste(){Scanners=newScanner(System.in);System.out.println("Digite um número");Stringaux=s.next();intnumero=Integer.parseInt(aux);System.out.println("Este é o número: "+numero);}publicstaticvoidmain(String[]args){newTeste();}}
H
hugoleo1
Cara, teu código ta errado.
O aux já é inteiro, então você não precisa dar parseInt…
E pra pegar o valor do Scanner seria entrada.nextInt() - no caso de inteiro.
vinnyparker
so nao entendi pq vc ta dando parseInt em aux, se ele ja é Int???
#intaux;#Scannerentrada=newScanner(System.in);#aux=entrada;//aux ja é INT#num[0]=Integer.parseInt(aux);
se vc quer passar Scanner para Int, seria:
num[0] =Integer.parsInt(Scanner);
ivo_costa
Galera antes de responderem deem uma olhadinha no eclipse, vcs não tão vendo que o objeto Scanner é tipo “Scanner” e não int? Não tem como dar um parse int num objeto SCANNER!!! E tbm não tem como setar o objeto Scanner em um int. Expliquem as coisas direito pro cara…
vinnyparker
vinnyparker:
so nao entendi pq vc ta dando parseInt em aux, se ele ja é Int???
#intaux;#Scannerentrada=newScanner(System.in);#aux=entrada;//aux ja é INT#num[0]=Integer.parseInt(aux);
se vc quer passar Scanner para Int, seria:
num[0] =Integer.parsInt(Scanner);
ops... foi mal..
F
fernandoagf
ivo costa:
Faltou dar um next no scanner:
publicclassTeste{publicTeste(){Scanners=newScanner(System.in);System.out.println("Digite um número");Stringaux=s.next();intnumero=Integer.parseInt(aux);System.out.println("Este é o número: "+numero);}publicstaticvoidmain(String[]args){newTeste();}}
Olá pessoal, obrigado a todos pelas respostas. Solucionei o meu problema, era que eu estava declarando a variável duas vezes sem perceber e tava dando erro. Ivo, consegui fazer do jeito que você mostrou. Só queria saber a função da linha:
String aux = s.next();
Depois você transformou a auxiliar que era string em inteiro,aí eu entendi. Eu não poderia utilizar o parseint direto sem essa variável auxiliar?
Grato,
ivo_costa
fernandoagf:
ivo costa:
Faltou dar um next no scanner:
publicclassTeste{publicTeste(){Scanners=newScanner(System.in);System.out.println("Digite um número");Stringaux=s.next();intnumero=Integer.parseInt(aux);System.out.println("Este é o número: "+numero);}publicstaticvoidmain(String[]args){newTeste();}}
Olá pessoal, obrigado a todos pelas respostas. Solucionei o meu problema, era que eu estava declarando a variável duas vezes sem perceber e tava dando erro. Ivo, consegui fazer do jeito que você mostrou. Só queria saber a função da linha:
String aux = s.next();
Depois você transformou a auxiliar que era string em inteiro,aí eu entendi. Eu não poderia utilizar o parseint direto sem essa variável auxiliar?
Grato,
Sim, concerteza, fiz assim apenas para fins didáticos, mais cuidado para o seu código não ficar sujo e incompreensivel com chamadas dentro de chamadas.