Перейти к основному содержимому

Метод сканера nextLine()

· 2 мин. чтения

1. Обзор

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

2. Сканер.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());
}

В приведенном выше примере вызов 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 .