DEV Community

Beatriz Maciel
Beatriz Maciel

Posted on • Updated on

HackerRank #6 | Scanner e End-of-file | 🇧🇷

Scanner

Um Scanner serve para ler um input. A sintaxe é:


Scanner sc = new Scanner (System.in);
    /...
    sc.close();                     

Enter fullscreen mode Exit fullscreen mode

É importante fechar o Scanner antes de fechar o main.

=============

Java End-of-file

No caso desse exercício que pede para ler linha a linha (sem delimitação prévia de quantas linhas totais), adicionando o número de cada linha antes do input (o input é uma String), achei a seguinte solução:

  • Criar um new Scanner
  • Criar um integer i que inicia em 1
  • Criar um while que passa um Scanner com o método .hasNext()
  • Imprimir o input com System.out.println(i + " " + sc.nextLine());

^ o .nextLine serve para o programa esperar uma linha para continuar a rodar. Sem o .nextLine(), o programa roda eternamente depois do primeiro input.

  • Somar +1 ao integer para voltar ao início do loop.
  • Fechar o Scanner.

O código final fica assim, dentro da main:


Scanner sc = new Scanner(System.in);
int i = 1;
while(sc.hasNext()){
     System.out.println(i + " " + sc);
     i++;
}
sc.close();

Enter fullscreen mode Exit fullscreen mode

============

Essa publicação faz parte de uma série de exercícios resolvidos em Java no HackerRank. Acesse a série completa:

Discussion (0)