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 .