Método nextLine () do scanner
1. Visão geral
Neste tutorial rápido, veremos brevemente o métodonextLine() da classejava.util.Scanner, é claro, com o foco em aprender como usá-lo na prática.
2. Scanner.nextLine()
O métodonextLine() da classejava.util.Scanner varre a partir da posição atual até encontrar um delimitador separador de linha. O método retornaString da posição atual até o final da linha.
Consequentemente, após a operação, a posição do scanner é definida para o início da próxima linha que segue o delimitador.
O método pesquisará os dados de entrada procurando um separador de linhas. Ele pode varrer todos os dados de entrada procurando a linha para pular se nenhum separador de linha estiver presente.
A assinatura do métodonextLine() é:
public String nextLine()
O método não possui parâmetros. Retorna a linha atual, excluindo qualquer separador de linha no final.
Vejamos seu uso:
try (Scanner scanner = new Scanner("Scanner\nTest\n")) {
assertEquals("Scanner", scanner.nextLine());
assertEquals("Test", scanner.nextLine());
}
Como vimos, o método retorna a entrada da posição atual do scanner até encontrar o separador de linhas:
try (Scanner scanner = new Scanner("Scanner\n")) {
scanner.useDelimiter("");
scanner.next();
assertEquals("canner", scanner.nextLine());
}
No exemplo acima, a chamada paranext() retorna‘S'e avança a posição do scanner para apontar para‘c'.
Portanto, quando chamamos o métodonextLine(), ele retorna a entrada da posição atual do scanner até encontrar um separador de linha.
O métodonextLine() lança dois tipos de exceções verificadas.
Em primeiro lugar, quando nenhum separador de linha é encontrado, ele lançaNoSuchElementException:
@Test(expected = NoSuchElementException.class)
public void whenReadingLines_thenThrowNoSuchElementException() {
try (Scanner scanner = new Scanner("")) {
scanner.nextLine();
}
}
Em segundo lugar, ele lançaIllegalStateException se o scanner estiver fechado:
@Test(expected = IllegalStateException.class)
public void whenReadingLines_thenThrowIllegalStateException() {
Scanner scanner = new Scanner("");
scanner.close();
scanner.nextLine();
}
3. Conclusão
Neste artigo objetivo, vimos o métodonextLine() da classeScanner de Java.
Além disso, analisamos seu uso em um simples programa Java. Por fim, examinamos as exceções geradas pelo método e pelo código de exemplo que a ilustra.
Como sempre, o código-fonte completo dos exemplos de trabalho está disponívelover on GitHub.