«1. Обзор

В этом кратком руководстве мы кратко рассмотрим метод nextLine() класса java.util.Scanner, конечно, с упором на то, как его использовать на практике.

2. Scanner.nextLine()

Метод nextLine() класса java.util.Scanner выполняет сканирование с текущей позиции до тех пор, пока не найдет разделитель строк. Метод возвращает строку от текущей позиции до конца строки.

Следовательно, после операции позиция сканера устанавливается в начало следующей строки, следующей за разделителем.

Метод будет искать во входных данных разделитель строк. Он может сканировать все входные данные в поисках строки, которую нужно пропустить, если нет разделителей строк.

Сигнатура метода nextLine():

public String nextLine()

Метод не принимает параметров. Он возвращает текущую строку, исключая любой разделитель строк в конце.

Давайте посмотрим на его использование:

try (Scanner scanner = new Scanner("Scanner\nTest\n")) {
    assertEquals("Scanner", scanner.nextLine());
    assertEquals("Test", scanner.nextLine());
}

Как мы видели, метод возвращает ввод из текущей позиции сканера до тех пор, пока не будет найден разделитель строк:

try (Scanner scanner = new Scanner("Scanner\n")) {
    scanner.useDelimiter("");
    scanner.next();
    assertEquals("canner", scanner.nextLine());
}

В приведенном выше примере вызов to next() возвращает «S» и перемещает позицию сканера так, чтобы она указывала на «c».

Поэтому, когда мы вызываем метод nextLine(), он возвращает ввод из текущей позиции сканера, пока не найдет разделитель строк.

Метод nextLine() генерирует два типа проверенных исключений.

Во-первых, если разделитель строк не найден, выбрасывается NoSuchElementException:

@Test(expected = NoSuchElementException.class)
public void whenReadingLines_thenThrowNoSuchElementException() {
    try (Scanner scanner = new Scanner("")) {
        scanner.nextLine();
    }
}

Во-вторых, выбрасывается IllegalStateException, если сканер закрыт:

@Test(expected = IllegalStateException.class)
public void whenReadingLines_thenThrowIllegalStateException() {
    Scanner scanner = new Scanner("");
    scanner.close();
    scanner.nextLine();
}

3. Заключение

В этом к-те В статье мы рассмотрели метод nextLine() класса Java Scanner.

Кроме того, мы рассмотрели его использование в простой Java-программе. Наконец, мы рассмотрели исключения, выдаваемые методом, и пример кода, иллюстрирующий его.

Как всегда, полный исходный код рабочих примеров доступен на GitHub.