Método nextLine () do scanner

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.