Dúvida - Scanner

2 respostas
D
import java.util.Scanner;
public class meuTeste {
   public static void main( String[] args ) {
      String s = " 1 2 3 true false";
      
      Scanner sc1 = new Scanner( s );
      Scanner sc2 = new Scanner( s );
      
      while( sc1.hasNext() ) System.out.println( sc1.next() );

      Systm.out.println( "\n\n\nsc2\n\n" );

      while( sc2.hasNextBoolean() ) System.out.println( sc2.nextBoolean() );


      Systm.out.println( "\nFim" );

   }
}

tem essa saída:
1
2
3
true
false

sc2

fim

Por que o "sc2" não aparece?[/code]

2 Respostas

E

Bom é o seguinte, quando você usa o método hasNextBoolean() está perguntando se o próximo token é um boolean e na verdade é um inteiro então como a resposta é false ele não entra no loop. O while correto seria:

while (sc2.hasNext()) {
    if (sc2.hasNextBoolean()) {
          System.out.println(sc2.nextBoolean());
    } else {
          sc2.hasNext();
    }
}
D

Bom Evandro, agora sim eu entendi. Brigadão pela força

Criado 5 de fevereiro de 2008
Ultima resposta 5 de fev. de 2008
Respostas 2
Participantes 2