Ir ao conteúdo
  • Cadastre-se

duvida sobre classe Scanner


Ir à solução Resolvido por DiF,

Posts recomendados

estou precisando usar o scanner em uma string e detectar ints nela, separados por virgula e sem espaço:

    System.out.print("Informe quais cadeiras você quer reservar, números separados por vírgula e sem espaço: ");    String quantidade = scanf.next();    Scanner input = new Scanner(quantidade);    while(input.hasNext()){        System.out.println(input.nextInt());    }

(o print do nextInt é só para testes)

o problema é que da erro na hora de pegar o nextInt:

java.util.InputMismatchException	at java.util.Scanner.throwFor(Unknown Source)	at java.util.Scanner.next(Unknown Source)	at java.util.Scanner.nextInt(Unknown Source)	at java.util.Scanner.nextInt(Unknown Source)	at ReservaDePassagens.compraPassagens(ReservaDePassagens.java:122)

(conteudo da String usado para testes: "1,2,3,4,5")

então é isso... como faço pra separar esses numeros que estão entre virgulas?

Link para o comentário
Compartilhar em outros sites

  • Moderador
  • Solução

Bem, seu código nunca iria funcionar.

primeiro, por que o uso da classe Scanner está errada.

Segundo, você quer os "números.. mas o mesmo se encontra em String.

Terceiro, você quer um meio de separar.. então é necessário utilizar o método split.

 

 

Tome este como um exemplo simples:

 String numeros = "1,2,3,4,5";         String[] numerosComoArray = numeros.split(","); for (int i = 0; i < numerosComoArray.length; i++) {       System.out.println(numerosComoArray[i]); }

Veja que eu defini os números na variável...  Implemente agora o uso da classe Scanner.

 

Lembrando que como você está manipulando STRING, não utilize a contagem de tokens. 

 

O melhor é utilizar o nextLine();

 

Na invocação do Scanner:  Scanner input = new Scanner(quantidade); 

Está errado, pois ele recebe como parametro o "System.in"

Logo o correto seria:

Scanner entrada = new Scanner(System.in);
  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...