Spec-Zone.ru › OpenJDK 25

Класс Scanner

java.lang.Object
java.util.Scanner
Все реализуемые интерфейсы:
Closeable, AutoCloseable, Iterator<String>
public final class Scanner extends Object implements Iterator<String>, Closeable
Простой текстовый сканер, который может разбирать примитивные типы и строки с помощью регулярных выражений.

Объект Scanner разбивает входные данные на токены с помощью шаблона-разделителя, который по умолчанию соответствует пробельным символам. Полученные токены затем можно преобразовать в значения различных типов с помощью различных методов next.

Например, этот код позволяет пользователю считывать число из консоли.

    var con = System.console();
    if (con != null) {
        Scanner sc = new Scanner(con.reader());
        int i = sc.nextInt();
    }

Этот код позволяет присваивать значения типов long из записей файла myNumbers:

     Scanner sc = new Scanner(new File("myNumbers"));
     while (sc.hasNextLong()) {
         long aLong = sc.nextLong();
     }

В этом коде используется Scanner для чтения строк из System.in. Scanner использует значение системного свойства stdin.encoding в качестве Charset. При чтении из System.in важно явно указывать кодировку, так как она может отличаться от default charset в зависимости от среды хоста или пользовательских настроек:

     Scanner sc = new Scanner(System.in, System.getProperty("stdin.encoding"));
     while (sc.hasNextLine()) {
         String aLine = sc.nextLine();
     }

Сканер может использовать и другие разделители, помимо пробельных символов. В этом примере из строки считываются несколько элементов:

    String input = "1 fish 2 fish red fish blue fish";
    Scanner s = new Scanner(input).useDelimiter("\\s*fish\\s*");
    System.out.println(s.nextInt());
    System.out.println(s.nextInt());
    System.out.println(s.next());
    System.out.println(s.next());
    s.close();

выводит следующий результат:

    1
    2
    red
    blue

Тот же результат можно получить с помощью этого кода, в котором регулярное выражение используется для одновременного разбора всех четырёх токенов:

    String input = "1 fish 2 fish red fish blue fish";
    Scanner s = new Scanner(input);
    s.findInLine("(\\d+) fish (\\d+) fish (\\w+) fish (\\w+)");
    MatchResult result = s.match();
    for (int i=1; i<=result.groupCount(); i++)
        System.out.println(result.group(i));
    s.close();

Разделитель по умолчанию, соответствующий пробельным символам, используемый сканером, определяется методом Character.isWhitespace(). Метод reset() сбрасывает разделитель сканера до разделителя по умолчанию, соответствующего пробельным символам, независимо от того, изменялся ли он ранее.

Операция сканирования может блокироваться в ожидании ввода.

Методы next() и hasNext(), а также соответствующие им методы (например, nextInt() и hasNextInt()) сначала пропускают все входные данные, соответствующие шаблону-разделителю, а затем пытаются вернуть следующий токен. Оба метода hasNext() и next() могут блокироваться в ожидании дальнейшего ввода. Блокировка метода hasNext() никак не связана с тем, будет ли блокироваться соответствующий ему метод next(). Метод tokens() также может блокироваться в ожидании ввода.

Методы findInLine(), findWithinHorizon(), skip() и findAll() работают независимо от шаблона-разделителя. Эти методы пытаются сопоставить указанный шаблон с входными данными, не учитывая разделители, и поэтому могут использоваться в особых случаях, когда разделители не имеют значения. Эти методы могут блокироваться в ожидании дальнейшего ввода.

Если сканер выбрасывает исключение InputMismatchException, он не пропускает токен, вызвавший исключение, поэтому его можно получить или пропустить с помощью другого метода.

В зависимости от типа шаблона-разделителя могут возвращаться пустые токены. Например, шаблон "\\s+" не возвращает пустых токенов, поскольку соответствует нескольким вхождениям разделителя. Шаблон-разделитель "\\s" может возвращать пустые токены, поскольку за один раз он пропускает только один пробел.

Сканер может считывать текст из любого объекта, реализующего интерфейс Readable. Если при вызове метода read() базового источника, доступного для чтения, выбрасывается исключение IOException, сканер считает, что достигнут конец входных данных. Последнее исключение IOException, выброшенное базовым источником, доступным для чтения, можно получить с помощью метода ioException().

При закрытии объекта Scanner он закроет источник входных данных, если тот реализует интерфейс Closeable.

Объект Scanner небезопасно использовать в многопоточной среде без внешней синхронизации.

Если не указано иное, передача параметра null в любой метод объекта Scanner приведёт к выбрасыванию исключения NullPointerException.

По умолчанию сканер интерпретирует числа как десятичные, если с помощью метода useRadix(int) не задано другое основание системы счисления. Метод reset() сбрасывает основание системы счисления сканера до 10 независимо от того, изменялось ли оно ранее.

Локализованные числа

Экземпляр этого класса может сканировать числа как в стандартных форматах, так и в форматах локали сканера. Начальная локаль сканера — это значение, возвращаемое методом Locale.getDefault(Locale.Category.FORMAT); её можно изменить с помощью метода useLocale(). Метод reset() сбрасывает локаль сканера до начальной независимо от того, изменялась ли она ранее.

Локализованные форматы определяются следующими параметрами, которые для конкретной локали берутся из объекта DecimalFormat этой локали, df, и его объекта DecimalFormatSymbols, dfs.

LocalGroupSeparator
Символ, используемый для разделения групп тысяч, то есть dfs.getGroupingSeparator()
LocalDecimalSeparator
Символ, используемый в качестве десятичного разделителя, то есть dfs.getDecimalSeparator()
LocalPositivePrefix
Строка перед положительным числом (может быть пустой), то есть df.getPositivePrefix()
LocalPositiveSuffix
Строка после положительного числа (может быть пустой), то есть df.getPositiveSuffix()
LocalNegativePrefix
Строка перед отрицательным числом (может быть пустой), то есть df.getNegativePrefix()
LocalNegativeSuffix
Строка после отрицательного числа (может быть пустой), то есть df.getNegativeSuffix()
LocalNaN
Строка, представляющая значение «не число» для чисел с плавающей точкой, то есть dfs.getNaN()
LocalInfinity
Строка, представляющая бесконечность для чисел с плавающей точкой, то есть dfs.getInfinity()

Синтаксис чисел

Строки, которые экземпляр этого класса может разбирать как числа, задаются грамматикой регулярных выражений ниже, где Rmax — наибольшая цифра используемого основания системы счисления (например, в системе счисления с основанием 10 значение Rmax равно 9).

NonAsciiDigit:
Символ c, не относящийся к ASCII, для которого метод Character.isDigit(c) возвращает true
Non0Digit:
[1-Rmax] | NonASCIIDigit
Digit:
[0-Rmax] | NonASCIIDigit
GroupedNumeral:
( Non0Digit Digit? Digit?
( LocalGroupSeparator Digit Digit Digit )+ )
Numeral:
( ( Digit+ ) | GroupedNumeral )
Integer:
( [-+]? ( Numeral ) )
| LocalPositivePrefix Numeral LocalPositiveSuffix
| LocalNegativePrefix Numeral LocalNegativeSuffix
DecimalNumeral:
Numeral
| Numeral LocalDecimalSeparator Digit*
| LocalDecimalSeparator Digit+
Exponent:
( [eE] [+-]? Digit+ )
Decimal:
( [-+]? DecimalNumeral Exponent? )
| LocalPositivePrefix DecimalNumeral LocalPositiveSuffix Exponent?
| LocalNegativePrefix DecimalNumeral LocalNegativeSuffix Exponent?
HexFloat:
[-+]? 0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+ ([pP][-+]?[0-9]+)?
NonNumber:
NaN | LocalNan | Infinity | LocalInfinity
SignedNonNumber:
( [-+]? NonNumber )
| LocalPositivePrefix NonNumber LocalPositiveSuffix
| LocalNegativePrefix NonNumber LocalNegativeSuffix
Float:
Decimal | HexFloat | SignedNonNumber

Пробельные символы в приведённых выше регулярных выражениях не имеют значения.

Начиная с версии:
1.5

Краткое описание конструкторов

Конструктор Описание
Scanner(File source)
Создаёт новый объект Scanner, который считывает значения из указанного файла.
Scanner(File source, String charsetName)
Создаёт новый объект Scanner, который считывает значения из указанного файла.
Scanner(File source, Charset charset)
Создаёт новый объект Scanner, который считывает значения из указанного файла.
Scanner(InputStream source)
Создаёт новый объект Scanner, который считывает значения из указанного входного потока.
Scanner(InputStream source, String charsetName)
Создаёт новый объект Scanner, который считывает значения из указанного входного потока.
Scanner(InputStream source, Charset charset)
Создаёт новый объект Scanner, который считывает значения из указанного входного потока.
Scanner(Readable source)
Создаёт новый объект Scanner, который считывает значения из указанного источника.
Scanner(String source)
Создаёт новый объект Scanner, который считывает значения из указанной строки.
Scanner(ReadableByteChannel source)
Создаёт новый объект Scanner, который считывает значения из указанного канала.
Scanner(ReadableByteChannel source, String charsetName)
Создаёт новый объект Scanner, который считывает значения из указанного канала.
Scanner(ReadableByteChannel source, Charset charset)
Создаёт новый объект Scanner, который считывает значения из указанного канала.
Scanner(Path source)
Создаёт новый объект Scanner, который считывает значения из указанного файла.
Scanner(Path source, String charsetName)
Создаёт новый объект Scanner, который считывает значения из указанного файла.
Scanner(Path source, Charset charset)
Создаёт новый объект Scanner, который считывает значения из указанного файла.

Краткое описание методов

Модификатор и тип Метод Описание
void close()
Закрывает этот сканер.
Pattern delimiter()
Возвращает Pattern, который этот Scanner в данный момент использует для сопоставления разделителей.
Stream<MatchResult> findAll(String patString)
Возвращает поток результатов сопоставления, соответствующих заданной строке шаблона.
Stream<MatchResult> findAll(Pattern pattern)
Возвращает поток результатов сопоставления этого сканера.
String findInLine(String pattern)
Пытается найти следующее вхождение шаблона, созданного из указанной строки, игнорируя разделители.
String findInLine(Pattern pattern)
Пытается найти следующее вхождение указанного шаблона, игнорируя разделители.
String findWithinHorizon(String pattern, int horizon)
Пытается найти следующее вхождение шаблона, созданного из указанной строки, игнорируя разделители.
String findWithinHorizon(Pattern pattern, int horizon)
Пытается найти следующее вхождение указанного шаблона.
boolean hasNext()
Возвращает true, если во входных данных этого сканера есть ещё один токен.
boolean hasNext(String pattern)
Возвращает true, если следующий токен соответствует шаблону, созданному из указанной строки.
boolean hasNext(Pattern pattern)
Возвращает true, если следующий полный токен соответствует указанному шаблону.
boolean hasNextBigDecimal()
Возвращает true, если следующий токен во входных данных этого сканера можно интерпретировать как BigDecimal с помощью метода nextBigDecimal().
boolean hasNextBigInteger()
Возвращает true, если следующий токен во входных данных этого сканера можно интерпретировать как BigInteger в системе счисления по умолчанию с помощью метода nextBigInteger().
boolean hasNextBigInteger(int radix)
Возвращает true, если следующий токен во входных данных этого сканера можно интерпретировать как BigInteger в указанной системе счисления с помощью метода nextBigInteger().
boolean hasNextBoolean()
Возвращает true, если следующий токен во входных данных этого сканера можно интерпретировать как логическое значение с помощью шаблона без учёта регистра, созданного из строки "true|false".
boolean hasNextByte()
Возвращает true, если следующий токен во входных данных этого сканера можно интерпретировать как значение типа byte в системе счисления по умолчанию с помощью метода nextByte().
boolean hasNextByte(int radix)
Возвращает true, если следующий токен во входных данных этого сканера можно интерпретировать как значение типа byte в указанной системе счисления с помощью метода nextByte().
boolean hasNextDouble()
Возвращает true, если следующий токен во входных данных этого сканера можно интерпретировать как значение типа double с помощью метода nextDouble().
boolean hasNextFloat()
Возвращает true, если следующий токен во входных данных этого сканера можно интерпретировать как значение типа float с помощью метода nextFloat().
boolean hasNextInt()
Возвращает true, если следующий токен во входных данных этого сканера можно интерпретировать как значение типа int в системе счисления по умолчанию с помощью метода nextInt().
boolean hasNextInt(int radix)
Возвращает true, если следующий токен во входных данных этого сканера можно интерпретировать как значение типа int в указанной системе счисления с помощью метода nextInt().
boolean hasNextLine()
Возвращает true, если во входных данных этого сканера есть ещё одна строка.
boolean hasNextLong()
Возвращает true, если следующий токен во входных данных этого сканера можно интерпретировать как значение типа long в системе счисления по умолчанию с помощью метода nextLong().
boolean hasNextLong(int radix)
Возвращает true, если следующий токен во входных данных этого сканера можно интерпретировать как значение типа long в указанной системе счисления с помощью метода nextLong().
boolean hasNextShort()
Возвращает true, если следующий токен во входных данных этого сканера можно интерпретировать как значение типа short в системе счисления по умолчанию с помощью метода nextShort().
boolean hasNextShort(int radix)
Возвращает true, если следующий токен во входных данных этого сканера можно интерпретировать как значение типа short в указанной системе счисления с помощью метода nextShort().
IOException ioException()
Возвращает последнее исключение IOException, выброшенное базовым Readable этого объекта Scanner.
Locale locale()
Возвращает локаль этого сканера.
MatchResult match()
Возвращает результат сопоставления последней операции сканирования, выполненной этим сканером.
String next()
Находит и возвращает следующий полный токен из этого сканера.
String next(String pattern)
Возвращает следующий токен, если он соответствует шаблону, созданному из указанной строки.
String next(Pattern pattern)
Возвращает следующий токен, если он соответствует указанному шаблону.
BigDecimal nextBigDecimal()
Считывает следующий токен входных данных как объект BigDecimal.
BigInteger nextBigInteger()
Считывает следующий токен входных данных как объект BigInteger.
BigInteger nextBigInteger(int radix)
Считывает следующий токен входных данных как объект BigInteger.
boolean nextBoolean()
Считывает следующий токен входных данных как логическое значение и возвращает его.
byte nextByte()
Считывает следующий токен входных данных как byte.
byte nextByte(int radix)
Считывает следующий токен входных данных как byte.
double nextDouble()
Считывает следующий токен входных данных как double.
float nextFloat()
Считывает следующий токен входных данных как float.
int nextInt()
Считывает следующий токен входных данных как int.
int nextInt(int radix)
Считывает следующий токен входных данных как int.
String nextLine()
Перемещает позицию этого сканера за пределы текущей строки и возвращает пропущенные входные данные.
long nextLong()
Считывает следующий токен входных данных как long.
long nextLong(int radix)
Считывает следующий токен входных данных как long.
short nextShort()
Считывает следующий токен входных данных как short.
short nextShort(int radix)
Считывает следующий токен входных данных как short.
int radix()
Возвращает систему счисления по умолчанию для этого сканера.
void remove()
Операция удаления не поддерживается этой реализацией Iterator.
Scanner reset()
Сбрасывает состояние этого сканера.
Scanner skip(String pattern)
Пропускает входные данные, соответствующие шаблону, созданному из указанной строки.
Scanner skip(Pattern pattern)
Пропускает входные данные, соответствующие указанному шаблону, игнорируя разделители.
Stream<String> tokens()
Возвращает поток токенов этого сканера, разделённых разделителями.
String toString()
Возвращает строковое представление этого объекта Scanner.
Scanner useDelimiter(String pattern)
Задаёт для этого сканера шаблон-разделитель, созданный из указанного String.
Scanner useDelimiter(Pattern pattern)
Задаёт для этого сканера указанный шаблон-разделитель.
Scanner useLocale(Locale locale)
Задаёт для этого сканера указанную локаль.
Scanner useRadix(int radix)
Задаёт для этого сканера указанную систему счисления по умолчанию.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

Методы, объявленные в интерфейсе Iterator

forEachRemaining

Подробное описание конструкторов

Scanner

public Scanner(Readable source)
Создает новый Scanner, который возвращает значения, считанные из указанного источника.
Параметры:
source — символьный источник, реализующий интерфейс Readable

Scanner

public Scanner(InputStream source)
Создает новый Scanner, который возвращает значения, считанные из указанного входного потока. Байты из потока преобразуются в символы с использованием кодировки по умолчанию.
Параметры:
source — входной поток для сканирования
См. также:
  • Charset.defaultCharset()

Scanner

public Scanner(InputStream source, String charsetName)
Создает новый Scanner, который возвращает значения, считанные из указанного входного потока. Байты из потока преобразуются в символы с использованием указанной кодировки.
Параметры:
source — входной поток для сканирования
charsetName — тип кодировки, используемой для преобразования байтов потока в символы для сканирования
Исключения:
IllegalArgumentException — если указанная кодировка символов не существует

Scanner

public Scanner(InputStream source, Charset charset)
Создает новый Scanner, который возвращает значения, считанные из указанного входного потока. Байты из потока преобразуются в символы с использованием указанной кодировки.
Параметры:
source — входной поток для сканирования
charset — кодировка, используемая для преобразования байтов файла в символы для сканирования
Начиная с версии:
10

Scanner

public Scanner(File source) throws FileNotFoundException
Создает новый Scanner, который возвращает значения, считанные из указанного файла. Байты из файла преобразуются в символы с использованием кодировки по умолчанию.
Параметры:
source — файл для сканирования
Исключения:
FileNotFoundException — если источник не найден
См. также:
  • Charset.defaultCharset()

Scanner

public Scanner(File source, String charsetName) throws FileNotFoundException
Создает новый Scanner, который возвращает значения, считанные из указанного файла. Байты из файла преобразуются в символы с использованием указанной кодировки.
Параметры:
source — файл для сканирования
charsetName — тип кодировки, используемой для преобразования байтов файла в символы для сканирования
Исключения:
FileNotFoundException — если источник не найден
IllegalArgumentException — если указанная кодировка не найдена

Scanner

public Scanner(File source, Charset charset) throws IOException
Создает новый Scanner, который возвращает значения, считанные из указанного файла. Байты из файла преобразуются в символы с использованием указанной кодировки.
Параметры:
source — файл для сканирования
charset — кодировка, используемая для преобразования байтов файла в символы для сканирования
Исключения:
IOException — если при открытии источника возникает ошибка ввода-вывода
Начиная с версии:
10

Scanner

public Scanner(Path source) throws IOException
Создает новый Scanner, который возвращает значения, считанные из указанного файла. Байты из файла преобразуются в символы с использованием кодировки по умолчанию.
Параметры:
source — путь к файлу для сканирования
Исключения:
IOException — если при открытии источника возникает ошибка ввода-вывода
Начиная с версии:
1.7
См. также:
  • Charset.defaultCharset()

Scanner

public Scanner(Path source, String charsetName) throws IOException
Создает новый Scanner, который возвращает значения, считанные из указанного файла. Байты из файла преобразуются в символы с использованием указанной кодировки.
Параметры:
source — путь к файлу для сканирования
charsetName — тип кодировки, используемой для преобразования байтов файла в символы для сканирования
Исключения:
IOException — если при открытии источника возникает ошибка ввода-вывода
IllegalArgumentException — если указанная кодировка не найдена
Начиная с версии:
1.7

Scanner

public Scanner(Path source, Charset charset) throws IOException
Создает новый Scanner, который возвращает значения, считанные из указанного файла. Байты из файла преобразуются в символы с использованием указанной кодировки.
Параметры:
source — путь к файлу для сканирования
charset — кодировка, используемая для преобразования байтов файла в символы для сканирования
Исключения:
IOException — если при открытии источника возникает ошибка ввода-вывода
Начиная с версии:
10

Scanner

public Scanner(String source)
Создает новый Scanner, который возвращает значения, считанные из указанной строки.
Параметры:
source — строка для сканирования

Scanner

public Scanner(ReadableByteChannel source)
Создает новый Scanner, который возвращает значения, считанные из указанного канала. Байты источника преобразуются в символы с использованием кодировки по умолчанию.
Параметры:
source — канал для сканирования
См. также:
  • Charset.defaultCharset()

Scanner

public Scanner(ReadableByteChannel source, String charsetName)
Создает новый Scanner, который возвращает значения, считанные из указанного канала. Байты источника преобразуются в символы с использованием указанной кодировки.
Параметры:
source — канал для сканирования
charsetName — тип кодировки, используемой для преобразования байтов канала в символы для сканирования
Исключения:
IllegalArgumentException — если указанная кодировка символов не существует

Scanner

public Scanner(ReadableByteChannel source, Charset charset)
Создает новый Scanner, который возвращает значения, считанные из указанного канала. Байты источника преобразуются в символы с использованием указанной кодировки.
Параметры:
source — канал для сканирования
charset — тип кодировки, используемой для преобразования байтов канала в символы для сканирования
Начиная с версии:
10

Подробное описание методов

close

public void close()
Закрывает этот сканер.

Если этот сканер еще не закрыт, то, если лежащий в его основе источник для чтения также реализует интерфейс Closeable, будет вызван метод close этого источника. Если этот сканер уже закрыт, вызов данного метода не окажет никакого эффекта.

Попытка выполнить операции поиска после закрытия сканера приведет к возникновению исключения IllegalStateException.

Определен в:
close в интерфейсе AutoCloseable
Определен в:
close в интерфейсе Closeable

ioException

public IOException ioException()
Возвращает последнее исключение IOException, возникшее в нижележащем Readable этого Scanner. Если такого исключения нет, метод возвращает null.
Возвращает:
последнее исключение, возникшее в источнике для чтения этого сканера

delimiter

public Pattern delimiter()
Возвращает Pattern, который этот Scanner использует в данный момент для сопоставления разделителей.
Возвращает:
шаблон разделителей этого сканера.

useDelimiter

public Scanner useDelimiter(Pattern pattern)
Задает для этого сканера указанный шаблон разделителей.
Параметры:
pattern — шаблон разделителей
Возвращает:
этот сканер

useDelimiter

public Scanner useDelimiter(String pattern)
Задает для этого сканера шаблон разделителей, созданный на основе указанной String.

Вызов этого метода в форме useDelimiter(pattern) работает точно так же, как вызов useDelimiter(Pattern.compile(pattern)).

Вызов метода reset() задает для сканера разделитель по умолчанию.

Параметры:
pattern — строка, задающая шаблон разделителей
Возвращает:
этот сканер

locale

public Locale locale()
Возвращает локаль этого сканера.

Локаль сканера влияет на многие элементы регулярных выражений по умолчанию для сопоставления примитивных типов; см. раздел локализованные числа выше.

Возвращает:
локаль этого сканера

useLocale

public Scanner useLocale(Locale locale)
Задает для этого сканера указанную локаль.

Локаль сканера влияет на многие элементы регулярных выражений по умолчанию для сопоставления примитивных типов; см. раздел локализованные числа выше.

Вызов метода reset() задает для сканера исходную локаль.

Параметры:
locale — строка, задающая используемую локаль
Возвращает:
этот сканер

radix

public int radix()
Возвращает систему счисления по умолчанию этого сканера.

Система счисления сканера влияет на элементы регулярных выражений по умолчанию для сопоставления чисел; см. раздел локализованные числа выше.

Возвращает:
система счисления по умолчанию этого сканера

useRadix

public Scanner useRadix(int radix)
Задает для этого сканера указанную систему счисления по умолчанию.

Система счисления сканера влияет на элементы регулярных выражений по умолчанию для сопоставления чисел; см. раздел локализованные числа выше.

Если система счисления меньше Character.MIN_RADIX или больше Character.MAX_RADIX, возникает исключение IllegalArgumentException.

Вызов метода reset() задает для сканера систему счисления 10.

Параметры:
radix — система счисления для сканирования чисел
Возвращает:
этот сканер
Исключения:
IllegalArgumentException — если система счисления выходит за допустимые пределы

match

public MatchResult match()
Возвращает результат сопоставления последней операции сканирования, выполненной этим сканером. Метод вызывает исключение IllegalStateException, если сопоставление не выполнялось или последнее сопоставление завершилось неудачей.

Различные методы next класса Scanner предоставляют результат сопоставления, если завершаются без исключения. Например, после вызова метода nextInt(), вернувшего значение int, этот метод возвращает MatchResult для поиска по регулярному выражению Integer, определенному выше. Аналогично, методы findInLine(), findWithinHorizon() и skip() предоставляют результат сопоставления, если выполняются успешно.

Возвращает:
результат последней операции сопоставления
Исключения:
IllegalStateException — если результат сопоставления недоступен

toString

public String toString()

Возвращает строковое представление этого Scanner. Строковое представление Scanner содержит информацию, которая может быть полезна для отладки. Точный формат не определен.

Переопределяет:
toString в классе Object
Возвращает:
строковое представление этого сканера

hasNext

public boolean hasNext()
Возвращает true, если во входных данных этого сканера есть следующий токен. Этот метод может блокировать выполнение в ожидании данных для сканирования. Сканер не переходит за пределы каких-либо входных данных.
Определен в:
hasNext в интерфейсе Iterator<String>
Возвращает:
true тогда и только тогда, когда у этого сканера есть следующий токен
Исключения:
IllegalStateException — если этот сканер закрыт
См. также:
  • Iterator

next

public String next()
Находит и возвращает следующий полный токен из этого сканера. Перед полным токеном и после него должны находиться входные данные, соответствующие шаблону разделителей. Этот метод может блокировать выполнение в ожидании данных для сканирования, даже если предыдущий вызов hasNext() вернул true.
Определен в:
next в интерфейсе Iterator<String>
Возвращает:
следующий токен
Исключения:
NoSuchElementException — если больше нет доступных токенов
IllegalStateException — если этот сканер закрыт
См. также:
  • Iterator

remove

public void remove()
Операция удаления не поддерживается этой реализацией Iterator.
Определен в:
remove в интерфейсе Iterator<String>
Исключения:
UnsupportedOperationException — если вызван этот метод.
См. также:
  • Iterator

hasNext

public boolean hasNext(String pattern)
Возвращает true, если следующий токен соответствует шаблону, созданному на основе указанной строки. Сканер не переходит за пределы каких-либо входных данных.

Вызов этого метода в форме hasNext(pattern) работает точно так же, как вызов hasNext(Pattern.compile(pattern)).

Параметры:
pattern — строка, задающая шаблон для поиска
Возвращает:
true тогда и только тогда, когда у этого сканера есть другой токен, соответствующий указанному шаблону
Исключения:
IllegalStateException — если этот сканер закрыт

next

public String next(String pattern)
Возвращает следующий токен, если он соответствует шаблону, созданному на основе указанной строки. Если сопоставление успешно, сканер переходит за пределы входных данных, соответствующих шаблону.

Вызов этого метода в форме next(pattern) работает точно так же, как вызов next(Pattern.compile(pattern)).

Параметры:
pattern — строка, задающая шаблон для поиска
Возвращает:
следующий токен
Исключения:
NoSuchElementException — если таких токенов нет
IllegalStateException — если этот сканер закрыт

hasNext

public boolean hasNext(Pattern pattern)
Возвращает true, если следующий полный токен соответствует указанному шаблону. Перед полным токеном и после него находятся входные данные, соответствующие шаблону разделителей. Этот метод может блокировать выполнение в ожидании данных. Сканер не переходит за пределы каких-либо входных данных.
Параметры:
pattern — шаблон для поиска
Возвращает:
true тогда и только тогда, когда у этого сканера есть другой токен, соответствующий указанному шаблону
Исключения:
IllegalStateException — если этот сканер закрыт

next

public String next(Pattern pattern)
Возвращает следующий токен, если он соответствует указанному шаблону. Этот метод может блокировать выполнение в ожидании данных для сканирования, даже если предыдущий вызов hasNext(Pattern) вернул true. Если сопоставление успешно, сканер переходит за пределы входных данных, соответствующих шаблону.
Параметры:
pattern — шаблон для поиска
Возвращает:
следующий токен
Исключения:
NoSuchElementException — если больше нет доступных токенов
IllegalStateException — если этот сканер закрыт

hasNextLine

public boolean hasNextLine()
Возвращает true, если во входных данных этого сканера есть следующая строка. Этот метод может блокировать выполнение в ожидании данных. Сканер не переходит за пределы каких-либо входных данных.
Возвращает:
true, если в оставшихся входных данных есть разделитель строк или другие символы
Исключения:
IllegalStateException — если этот сканер закрыт

nextLine

public String nextLine()
Перемещает этот сканер за пределы текущей строки и возвращает пропущенные входные данные. Метод возвращает остаток текущей строки, не включая завершающий разделитель строк. Позиция устанавливается в начало следующей строки.

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

Возвращает:
пропущенная строка
Исключения:
NoSuchElementException — если строка не найдена
IllegalStateException — если этот сканер закрыт

findInLine

public String findInLine(String pattern)
Пытается найти следующее вхождение шаблона, созданного на основе указанной строки, игнорируя разделители.

Вызов этого метода в форме findInLine(pattern) работает точно так же, как вызов findInLine(Pattern.compile(pattern)).

Параметры:
pattern — строка, задающая шаблон для поиска
Возвращает:
текст, соответствующий указанному шаблону
Исключения:
IllegalStateException — если этот сканер закрыт

findInLine

public String findInLine(Pattern pattern)
Пытается найти следующее вхождение указанного шаблона, игнорируя разделители. Если шаблон найден до следующего разделителя строк, сканер переходит за пределы соответствующих входных данных и возвращает строку, соответствующую шаблону. Если до следующего разделителя строк такой шаблон во входных данных не обнаружен, возвращается null, а позиция сканера не меняется. Этот метод может блокировать выполнение в ожидании данных, соответствующих шаблону.

Поскольку этот метод продолжает поиск указанного шаблона во входных данных, при отсутствии разделителей строк он может буферизовать все входные данные в поисках нужного токена.

Параметры:
pattern — шаблон для поиска
Возвращает:
текст, соответствующий указанному шаблону
Исключения:
IllegalStateException — если этот сканер закрыт

findWithinHorizon

public String findWithinHorizon(String pattern, int horizon)
Пытается найти следующее вхождение шаблона, созданного на основе указанной строки, игнорируя разделители.

Вызов этого метода в форме findWithinHorizon(pattern) работает точно так же, как вызов findWithinHorizon(Pattern.compile(pattern), horizon).

Параметры:
pattern — строка, задающая шаблон для поиска
horizon — горизонт поиска
Возвращает:
текст, соответствующий указанному шаблону
Исключения:
IllegalStateException — если этот сканер закрыт
IllegalArgumentException — если горизонт отрицателен

findWithinHorizon

public String findWithinHorizon(Pattern pattern, int horizon)
Пытается найти следующее вхождение указанного шаблона.

Этот метод ищет указанный шаблон во входных данных до заданного горизонта поиска, игнорируя разделители. Если шаблон найден, сканер переходит за пределы соответствующих входных данных и возвращает строку, соответствующую шаблону. Если шаблон не обнаружен, возвращается null, а позиция сканера не меняется. Этот метод может блокировать выполнение в ожидании данных, соответствующих шаблону.

Сканер никогда не ищет далее horizon кодовых точек от текущей позиции. Обратите внимание: совпадение может быть ограничено горизонтом; то есть результат сопоставления мог бы быть другим, если бы горизонт был больше. Сканер считает горизонт прозрачной границей, не ограничивающей привязку (см. Matcher.useTransparentBounds(boolean) и Matcher.useAnchoringBounds(boolean)).

Если горизонт равен 0, он игнорируется, и этот метод продолжает неограниченный поиск указанного шаблона во входных данных. В этом случае метод может буферизовать все входные данные в ходе поиска шаблона.

Если горизонт отрицателен, возникает исключение IllegalArgumentException.

Параметры:
pattern — шаблон для поиска
horizon — горизонт поиска
Возвращает:
текст, соответствующий указанному шаблону
Исключения:
IllegalStateException — если этот сканер закрыт
IllegalArgumentException — если горизонт отрицателен

skip

public Scanner skip(Pattern pattern)
Пропускает входные данные, соответствующие указанному шаблону, игнорируя разделители. Этот метод пропускает входные данные, если указанное шаблонное сопоставление с привязкой к началу успешно.

Если в текущей позиции соответствие указанному шаблону не найдено, входные данные не пропускаются и возникает исключение NoSuchElementException.

Поскольку этот метод пытается сопоставить указанный шаблон, начиная с текущей позиции сканера, шаблоны, способные соответствовать большому объему входных данных (например, ".*"), могут заставить сканер буферизовать большой объем данных.

Обратите внимание: можно пропустить часть данных без риска возникновения NoSuchElementException, используя шаблон, которому может соответствовать пустая строка, например sc.skip("[ \t]*").

Параметры:
pattern — шаблон для пропуска
Возвращает:
этот сканер
Исключения:
NoSuchElementException — если указанный шаблон не найден
IllegalStateException — если этот сканер закрыт

skip

public Scanner skip(String pattern)
Пропускает входные данные, соответствующие шаблону, созданному на основе указанной строки.

Вызов этого метода в форме skip(pattern) работает точно так же, как вызов skip(Pattern.compile(pattern)).

Параметры:
pattern — строка, задающая шаблон для пропуска
Возвращает:
этот сканер
Исключения:
IllegalStateException — если этот сканер закрыт

hasNextBoolean

public boolean hasNextBoolean()
Возвращает true, если следующий токен во входных данных этого сканера может быть интерпретирован как логическое значение с использованием шаблона без учета регистра, созданного из строки "true|false". Сканер не переходит за пределы соответствующих входных данных.
Возвращает:
true тогда и только тогда, когда следующий токен этого сканера является допустимым логическим значением
Исключения:
IllegalStateException — если этот сканер закрыт

nextBoolean

public boolean nextBoolean()
Считывает следующий токен входных данных как логическое значение и возвращает это значение. Этот метод вызывает исключение InputMismatchException, если следующий токен нельзя преобразовать в допустимое логическое значение. Если сопоставление успешно, сканер переходит за пределы соответствующих входных данных.
Возвращает:
логическое значение, считанное из входных данных
Исключения:
InputMismatchException — если следующий токен не является допустимым логическим значением
NoSuchElementException — если входные данные исчерпаны
IllegalStateException — если этот сканер закрыт

hasNextByte

public boolean hasNextByte()
Возвращает true, если следующий токен во входных данных этого сканера можно интерпретировать как значение типа byte в системе счисления по умолчанию с помощью метода nextByte(). Сканер не продвигается дальше по входным данным.
Возвращает:
true тогда и только тогда, когда следующий токен этого сканера является допустимым значением типа byte
Вызывает исключение:
IllegalStateException — если этот сканер закрыт

hasNextByte

public boolean hasNextByte(int radix)
Возвращает true, если следующий токен во входных данных этого сканера можно интерпретировать как значение типа byte в указанной системе счисления с помощью метода nextByte(). Сканер не продвигается дальше по входным данным.

Если основание системы счисления меньше Character.MIN_RADIX или больше Character.MAX_RADIX, возникает исключение IllegalArgumentException.

Параметры:
radix — основание системы счисления, используемое для интерпретации токена как значения типа byte
Возвращает:
true тогда и только тогда, когда следующий токен этого сканера является допустимым значением типа byte
Вызывает исключение:
IllegalStateException — если этот сканер закрыт
IllegalArgumentException — если основание системы счисления вне допустимого диапазона

nextByte

public byte nextByte()
Сканирует следующий токен входных данных как значение byte.

Вызов этого метода в форме nextByte() действует точно так же, как вызов nextByte(radix), где radix — основание системы счисления по умолчанию для этого сканера.

Возвращает:
значение byte, считанное из входных данных
Вызывает исключение:
InputMismatchException — если следующий токен не соответствует регулярному выражению Integer или выходит за допустимый диапазон
NoSuchElementException — если входные данные исчерпаны
IllegalStateException — если этот сканер закрыт

nextByte

public byte nextByte(int radix)
Сканирует следующий токен входных данных как значение byte. Этот метод вызовет InputMismatchException, если следующий токен нельзя преобразовать в допустимое значение типа byte, как описано ниже. Если преобразование выполнено успешно, сканер продвигается дальше по соответствующему входному фрагменту.

Если следующий токен соответствует определённому выше регулярному выражению Integer, токен преобразуется в значение byte следующим образом: удаляются все префиксы, разделители групп и суффиксы, специфичные для локали; цифры, отличные от ASCII, преобразуются в цифры ASCII с помощью Character.digit; если присутствовали отрицательные префиксы и суффиксы, специфичные для локали, добавляется знак минус (-); затем полученная строка передаётся методу Byte.parseByte с указанным основанием системы счисления.

Если основание системы счисления меньше Character.MIN_RADIX или больше Character.MAX_RADIX, возникает исключение IllegalArgumentException.

Параметры:
radix — основание системы счисления, используемое для интерпретации токена как значения типа byte
Возвращает:
значение byte, считанное из входных данных
Вызывает исключение:
InputMismatchException — если следующий токен не соответствует регулярному выражению Integer или выходит за допустимый диапазон
NoSuchElementException — если входные данные исчерпаны
IllegalStateException — если этот сканер закрыт
IllegalArgumentException — если основание системы счисления вне допустимого диапазона

hasNextShort

public boolean hasNextShort()
Возвращает true, если следующий токен во входных данных этого сканера можно интерпретировать как значение типа short в системе счисления по умолчанию с помощью метода nextShort(). Сканер не продвигается дальше по входным данным.
Возвращает:
true тогда и только тогда, когда следующий токен этого сканера является допустимым значением типа short в системе счисления по умолчанию
Вызывает исключение:
IllegalStateException — если этот сканер закрыт

hasNextShort

public boolean hasNextShort(int radix)
Возвращает true, если следующий токен во входных данных этого сканера можно интерпретировать как значение типа short в указанной системе счисления с помощью метода nextShort(). Сканер не продвигается дальше по входным данным.

Если основание системы счисления меньше Character.MIN_RADIX или больше Character.MAX_RADIX, возникает исключение IllegalArgumentException.

Параметры:
radix — основание системы счисления, используемое для интерпретации токена как значения типа short
Возвращает:
true тогда и только тогда, когда следующий токен этого сканера является допустимым значением типа short в указанной системе счисления
Вызывает исключение:
IllegalStateException — если этот сканер закрыт
IllegalArgumentException — если основание системы счисления вне допустимого диапазона

nextShort

public short nextShort()
Сканирует следующий токен входных данных как значение short.

Вызов этого метода в форме nextShort() действует точно так же, как вызов nextShort(radix), где radix — основание системы счисления по умолчанию для этого сканера.

Возвращает:
значение short, считанное из входных данных
Вызывает исключение:
InputMismatchException — если следующий токен не соответствует регулярному выражению Integer или выходит за допустимый диапазон
NoSuchElementException — если входные данные исчерпаны
IllegalStateException — если этот сканер закрыт

nextShort

public short nextShort(int radix)
Сканирует следующий токен входных данных как значение short. Этот метод вызовет InputMismatchException, если следующий токен нельзя преобразовать в допустимое значение типа short, как описано ниже. Если преобразование выполнено успешно, сканер продвигается дальше по соответствующему входному фрагменту.

Если следующий токен соответствует определённому выше регулярному выражению Integer, токен преобразуется в значение short следующим образом: удаляются все префиксы, разделители групп и суффиксы, специфичные для локали; цифры, отличные от ASCII, преобразуются в цифры ASCII с помощью Character.digit; если присутствовали отрицательные префиксы и суффиксы, специфичные для локали, добавляется знак минус (-); затем полученная строка передаётся методу Short.parseShort с указанным основанием системы счисления.

Если основание системы счисления меньше Character.MIN_RADIX или больше Character.MAX_RADIX, возникает исключение IllegalArgumentException.

Параметры:
radix — основание системы счисления, используемое для интерпретации токена как значения типа short
Возвращает:
значение short, считанное из входных данных
Вызывает исключение:
InputMismatchException — если следующий токен не соответствует регулярному выражению Integer или выходит за допустимый диапазон
NoSuchElementException — если входные данные исчерпаны
IllegalStateException — если этот сканер закрыт
IllegalArgumentException — если основание системы счисления вне допустимого диапазона

hasNextInt

public boolean hasNextInt()
Возвращает true, если следующий токен во входных данных этого сканера можно интерпретировать как значение типа int в системе счисления по умолчанию с помощью метода nextInt(). Сканер не продвигается дальше по входным данным.
Возвращает:
true тогда и только тогда, когда следующий токен этого сканера является допустимым значением типа int
Вызывает исключение:
IllegalStateException — если этот сканер закрыт

hasNextInt

public boolean hasNextInt(int radix)
Возвращает true, если следующий токен во входных данных этого сканера можно интерпретировать как значение типа int в указанной системе счисления с помощью метода nextInt(). Сканер не продвигается дальше по входным данным.

Если основание системы счисления меньше Character.MIN_RADIX или больше Character.MAX_RADIX, возникает исключение IllegalArgumentException.

Параметры:
radix — основание системы счисления, используемое для интерпретации токена как значения типа int
Возвращает:
true тогда и только тогда, когда следующий токен этого сканера является допустимым значением типа int
Вызывает исключение:
IllegalStateException — если этот сканер закрыт
IllegalArgumentException — если основание системы счисления вне допустимого диапазона

nextInt

public int nextInt()
Сканирует следующий токен входных данных как значение типа int.

Вызов этого метода в форме nextInt() действует точно так же, как вызов nextInt(radix), где radix — основание системы счисления по умолчанию для этого сканера.

Возвращает:
значение int, считанное из входных данных
Вызывает исключение:
InputMismatchException — если следующий токен не соответствует регулярному выражению Integer или выходит за допустимый диапазон
NoSuchElementException — если входные данные исчерпаны
IllegalStateException — если этот сканер закрыт

nextInt

public int nextInt(int radix)
Сканирует следующий токен входных данных как значение типа int. Этот метод вызовет InputMismatchException, если следующий токен нельзя преобразовать в допустимое значение типа int, как описано ниже. Если преобразование выполнено успешно, сканер продвигается дальше по соответствующему входному фрагменту.

Если следующий токен соответствует определённому выше регулярному выражению Integer, токен преобразуется в значение типа int следующим образом: удаляются все префиксы, разделители групп и суффиксы, специфичные для локали; цифры, отличные от ASCII, преобразуются в цифры ASCII с помощью Character.digit; если присутствовали отрицательные префиксы и суффиксы, специфичные для локали, добавляется знак минус (-); затем полученная строка передаётся методу Integer.parseInt с указанным основанием системы счисления.

Если основание системы счисления меньше Character.MIN_RADIX или больше Character.MAX_RADIX, возникает исключение IllegalArgumentException.

Параметры:
radix — основание системы счисления, используемое для интерпретации токена как значения типа int
Возвращает:
значение int, считанное из входных данных
Вызывает исключение:
InputMismatchException — если следующий токен не соответствует регулярному выражению Integer или выходит за допустимый диапазон
NoSuchElementException — если входные данные исчерпаны
IllegalStateException — если этот сканер закрыт
IllegalArgumentException — если основание системы счисления вне допустимого диапазона

hasNextLong

public boolean hasNextLong()
Возвращает true, если следующий токен во входных данных этого сканера можно интерпретировать как значение типа long в системе счисления по умолчанию с помощью метода nextLong(). Сканер не продвигается дальше по входным данным.
Возвращает:
true тогда и только тогда, когда следующий токен этого сканера является допустимым значением типа long
Вызывает исключение:
IllegalStateException — если этот сканер закрыт

hasNextLong

public boolean hasNextLong(int radix)
Возвращает true, если следующий токен во входных данных этого сканера можно интерпретировать как значение типа long в указанной системе счисления с помощью метода nextLong(). Сканер не продвигается дальше по входным данным.

Если основание системы счисления меньше Character.MIN_RADIX или больше Character.MAX_RADIX, возникает исключение IllegalArgumentException.

Параметры:
radix — основание системы счисления, используемое для интерпретации токена как значения типа long
Возвращает:
true тогда и только тогда, когда следующий токен этого сканера является допустимым значением типа long
Вызывает исключение:
IllegalStateException — если этот сканер закрыт
IllegalArgumentException — если основание системы счисления вне допустимого диапазона

nextLong

public long nextLong()
Сканирует следующий токен входных данных как значение long.

Вызов этого метода в форме nextLong() действует точно так же, как вызов nextLong(radix), где radix — основание системы счисления по умолчанию для этого сканера.

Возвращает:
значение long, считанное из входных данных
Вызывает исключение:
InputMismatchException — если следующий токен не соответствует регулярному выражению Integer или выходит за допустимый диапазон
NoSuchElementException — если входные данные исчерпаны
IllegalStateException — если этот сканер закрыт

nextLong

public long nextLong(int radix)
Сканирует следующий токен входных данных как значение long. Этот метод вызовет InputMismatchException, если следующий токен нельзя преобразовать в допустимое значение типа long, как описано ниже. Если преобразование выполнено успешно, сканер продвигается дальше по соответствующему входному фрагменту.

Если следующий токен соответствует определённому выше регулярному выражению Integer, токен преобразуется в значение long следующим образом: удаляются все префиксы, разделители групп и суффиксы, специфичные для локали; цифры, отличные от ASCII, преобразуются в цифры ASCII с помощью Character.digit; если присутствовали отрицательные префиксы и суффиксы, специфичные для локали, добавляется знак минус (-); затем полученная строка передаётся методу Long.parseLong с указанным основанием системы счисления.

Если основание системы счисления меньше Character.MIN_RADIX или больше Character.MAX_RADIX, возникает исключение IllegalArgumentException.

Параметры:
radix — основание системы счисления, используемое для интерпретации токена как значения типа int
Возвращает:
значение long, считанное из входных данных
Вызывает исключение:
InputMismatchException — если следующий токен не соответствует регулярному выражению Integer или выходит за допустимый диапазон
NoSuchElementException — если входные данные исчерпаны
IllegalStateException — если этот сканер закрыт
IllegalArgumentException — если основание системы счисления вне допустимого диапазона

hasNextFloat

public boolean hasNextFloat()
Возвращает true, если следующий токен во входных данных этого сканера можно интерпретировать как значение типа float с помощью метода nextFloat(). Сканер не продвигается дальше по входным данным.
Возвращает:
true тогда и только тогда, когда следующий токен этого сканера является допустимым значением типа float
Вызывает исключение:
IllegalStateException — если этот сканер закрыт

nextFloat

public float nextFloat()
Сканирует следующий токен входных данных как значение float. Этот метод вызовет InputMismatchException, если следующий токен нельзя преобразовать в допустимое значение типа float, как описано ниже. Если преобразование выполнено успешно, сканер продвигается дальше по соответствующему входному фрагменту.

Если следующий токен соответствует определённому выше регулярному выражению Float, токен преобразуется в значение float следующим образом: удаляются все префиксы, разделители групп и суффиксы, специфичные для локали; цифры, отличные от ASCII, преобразуются в цифры ASCII с помощью Character.digit; если присутствовали отрицательные префиксы и суффиксы, специфичные для локали, добавляется знак минус (-); затем полученная строка передаётся методу Float.parseFloat. Если токен соответствует локализованным строкам NaN или бесконечности, в зависимости от случая методу Float.parseFloat передаётся либо "Nan", либо "Infinity".

Возвращает:
значение float, считанное из входных данных
Вызывает исключение:
InputMismatchException — если следующий токен не соответствует регулярному выражению Float или выходит за допустимый диапазон
NoSuchElementException — если входные данные исчерпаны
IllegalStateException — если этот сканер закрыт

hasNextDouble

public boolean hasNextDouble()
Возвращает true, если следующий токен во входных данных этого сканера можно интерпретировать как значение типа double с помощью метода nextDouble(). Сканер не продвигается дальше по входным данным.
Возвращает:
true тогда и только тогда, когда следующий токен этого сканера является допустимым значением типа double
Вызывает исключение:
IllegalStateException — если этот сканер закрыт

nextDouble

public double nextDouble()
Сканирует следующий токен входных данных как значение double. Этот метод вызовет InputMismatchException, если следующий токен нельзя преобразовать в допустимое значение типа double. Если преобразование выполнено успешно, сканер продвигается дальше по соответствующему входному фрагменту.

Если следующий токен соответствует определённому выше регулярному выражению Float, токен преобразуется в значение double следующим образом: удаляются все префиксы, разделители групп и суффиксы, специфичные для локали; цифры, отличные от ASCII, преобразуются в цифры ASCII с помощью Character.digit; если присутствовали отрицательные префиксы и суффиксы, специфичные для локали, добавляется знак минус (-); затем полученная строка передаётся методу Double.parseDouble. Если токен соответствует локализованным строкам NaN или бесконечности, в зависимости от случая методу Double.parseDouble передаётся либо "Nan", либо "Infinity".

Возвращает:
значение double, считанное из входных данных
Вызывает исключение:
InputMismatchException — если следующий токен не соответствует регулярному выражению Float или выходит за допустимый диапазон
NoSuchElementException — если входные данные исчерпаны
IllegalStateException — если этот сканер закрыт

hasNextBigInteger

public boolean hasNextBigInteger()
Возвращает true, если следующий токен во входных данных этого сканера можно интерпретировать как BigInteger в системе счисления по умолчанию с помощью метода nextBigInteger(). Сканер не продвигается дальше по входным данным.
Возвращает:
true тогда и только тогда, когда следующий токен этого сканера является допустимым BigInteger
Вызывает исключение:
IllegalStateException — если этот сканер закрыт

hasNextBigInteger

public boolean hasNextBigInteger(int radix)
Возвращает true, если следующий токен во входных данных этого сканера можно интерпретировать как BigInteger в указанной системе счисления с помощью метода nextBigInteger(). Сканер не продвигается дальше по входным данным.

Если основание системы счисления меньше Character.MIN_RADIX или больше Character.MAX_RADIX, возникает исключение IllegalArgumentException.

Параметры:
radix — основание системы счисления, используемое для интерпретации токена как целого числа
Возвращает:
true тогда и только тогда, когда следующий токен этого сканера является допустимым BigInteger
Вызывает исключение:
IllegalStateException — если этот сканер закрыт
IllegalArgumentException — если основание системы счисления вне допустимого диапазона

nextBigInteger

public BigInteger nextBigInteger()
Сканирует следующий токен входных данных как BigInteger.

Вызов этого метода в форме nextBigInteger() действует точно так же, как вызов nextBigInteger(radix), где radix — основание системы счисления по умолчанию для этого сканера.

Возвращает:
значение BigInteger, считанное из входных данных
Вызывает исключение:
InputMismatchException — если следующий токен не соответствует регулярному выражению Integer или выходит за допустимый диапазон
NoSuchElementException — если входные данные исчерпаны
IllegalStateException — если этот сканер закрыт

nextBigInteger

public BigInteger nextBigInteger(int radix)
Сканирует следующий токен входных данных как BigInteger.

Если следующий токен соответствует определённому выше регулярному выражению Integer, токен преобразуется в значение BigInteger следующим образом: удаляются все разделители групп, цифры, отличные от ASCII, преобразуются в цифры ASCII с помощью Character.digit, а полученная строка передаётся конструктору BigInteger(String, int) с указанным основанием системы счисления.

Если основание системы счисления меньше Character.MIN_RADIX или больше Character.MAX_RADIX, возникает исключение IllegalArgumentException.

Параметры:
radix — основание системы счисления, используемое для интерпретации токена
Возвращает:
значение BigInteger, считанное из входных данных
Вызывает исключение:
InputMismatchException — если следующий токен не соответствует регулярному выражению Integer или выходит за допустимый диапазон
NoSuchElementException — если входные данные исчерпаны
IllegalStateException — если этот сканер закрыт
IllegalArgumentException — если основание системы счисления вне допустимого диапазона

hasNextBigDecimal

public boolean hasNextBigDecimal()
Возвращает true, если следующий токен во входных данных этого сканера можно интерпретировать как BigDecimal с помощью метода nextBigDecimal(). Сканер не продвигается дальше по входным данным.
Возвращает:
true тогда и только тогда, когда следующий токен этого сканера является допустимым BigDecimal
Вызывает исключение:
IllegalStateException — если этот сканер закрыт

nextBigDecimal

public BigDecimal nextBigDecimal()
Сканирует следующий токен входных данных как BigDecimal.

Если следующий токен соответствует определённому выше регулярному выражению Decimal, токен преобразуется в значение BigDecimal следующим образом: удаляются все разделители групп, цифры, отличные от ASCII, преобразуются в цифры ASCII с помощью Character.digit, а полученная строка передаётся конструктору BigDecimal(String).

Возвращает:
значение BigDecimal, считанное из входных данных
Вызывает исключение:
InputMismatchException — если следующий токен не соответствует регулярному выражению Decimal или выходит за допустимый диапазон
NoSuchElementException — если входные данные исчерпаны
IllegalStateException — если этот сканер закрыт

reset

public Scanner reset()
Сбрасывает состояние этого сканера.

При сбросе сканера отбрасываются все его явные данные о состоянии, которые могли быть изменены вызовами useDelimiter(), useLocale() или useRadix().

Вызов этого метода в форме scanner.reset() действует точно так же, как вызов

  scanner.useDelimiter("\\p{javaWhitespace}+")
         .useLocale(Locale.getDefault(Locale.Category.FORMAT))
         .useRadix(10);
Возвращает:
этот сканер
Начиная с версии:
1.6

tokens

public Stream<String> tokens()
Возвращает поток токенов, разделённых разделителями, из этого сканера. Поток содержит те же токены, которые были бы возвращены, начиная с текущего состояния этого сканера, при многократном вызове метода next() до тех пор, пока метод hasNext() не вернёт false.

Полученный поток является последовательным и упорядоченным. Все его элементы не равны null.

Сканирование начинается при выполнении терминальной операции над потоком и использует текущее состояние этого сканера. Последующие вызовы любых методов этого сканера, кроме close() и ioException(), могут возвращать неопределённые результаты или приводить к неопределённым последствиям для возвращённого потока. Источник возвращённого потока Spliterator является быстро завершающимся при изменении и при обнаружении подобных вызовов во время выполнения конвейера потока, насколько это возможно, выбрасывает ConcurrentModificationException.

После завершения выполнения конвейера потока сканер остаётся в неопределённом состоянии и не может быть использован повторно.

Если этот сканер содержит ресурс, который необходимо освободить, сканер следует закрыть, вызвав метод close() или закрыв возвращённый поток. Закрытие потока закроет базовый сканер. IllegalStateException выбрасывается, если сканер был закрыт в момент вызова этого метода или если сканер закрывается во время выполнения конвейера потока.

Этот метод может блокироваться в ожидании дополнительных входных данных.

Примечание API:
Например, следующий код создаст список токенов, разделённых запятыми, из строки:
List<String> result = new Scanner("abc,def,,ghi")
    .useDelimiter(",")
    .tokens()
    .collect(Collectors.toList());

Полученный список будет содержать "abc", "def", пустую строку и "ghi".

Возвращает:
последовательный поток строковых токенов
Вызывает исключение:
IllegalStateException — если этот сканер закрыт
Начиная с версии:
9

findAll

public Stream<MatchResult> findAll(Pattern pattern)
Возвращает поток результатов совпадений для этого сканера. Поток содержит те же результаты в том же порядке, в котором они возвращались бы при последовательных вызовах findWithinHorizon(pattern, 0), а затем match(), пока findWithinHorizon() находит совпадения.

Полученный поток является последовательным и упорядоченным. Все его элементы не равны null.

Сканирование начинается при запуске терминальной операции потока с использованием текущего состояния этого сканера. Последующие вызовы любых методов этого сканера, кроме close() и ioException(), могут возвращать неопределённые результаты или приводить к неопределённым последствиям для возвращённого потока. Источник возвращённого потока Spliterator работает в режиме fail-fast и при обнаружении таких вызовов во время выполнения конвейера потока по возможности выбрасывает исключение ConcurrentModificationException.

После завершения выполнения конвейера потока сканер остаётся в неопределённом состоянии и не может быть использован повторно.

Если этот сканер содержит ресурс, который необходимо освободить, сканер следует закрыть: либо вызвав его метод close(), либо закрыв возвращённый поток. Закрытие потока закроет базовый сканер. IllegalStateException выбрасывается, если сканер был закрыт на момент вызова этого метода или если сканер закрывается во время выполнения конвейера потока.

Как и методы findWithinHorizon(), этот метод может блокироваться в ожидании дополнительных входных данных и буферизовать неограниченный объём данных в поисках совпадения.

Примечание к API:
Например, следующий код прочитает файл и вернёт список всех последовательностей символов, состоящих из семи или более заглавных латинских букв:
try (Scanner sc = new Scanner(Path.of("input.txt"))) {
    Pattern pat = Pattern.compile("[A-Z]{7,}");
    List<String> capWords = sc.findAll(pat)
                              .map(MatchResult::group)
                              .collect(Collectors.toList());
}
Параметры:
pattern — шаблон для поиска
Возвращает:
последовательный поток результатов совпадений
Выбрасывает:
NullPointerException — если шаблон равен null
IllegalStateException — если этот сканер закрыт
Начиная с версии:
9

findAll

public Stream<MatchResult> findAll(String patString)
Возвращает поток результатов совпадений с заданной строкой шаблона. Результат эквивалентен следующему коду:
    scanner.findAll(Pattern.compile(patString))
Параметры:
patString — строка шаблона
Возвращает:
последовательный поток результатов совпадений
Выбрасывает:
NullPointerException — если patString равен null
IllegalStateException — если этот сканер закрыт
PatternSyntaxException — если синтаксис регулярного выражения некорректен
Начиная с версии:
9
См. также:
  • Pattern

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/Scanner.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API