模块  java.base
Пакет java.util

Класс Scanner

  • Реализованные интерфейсы
    Closeable , AutoCloseable , Iterator<String>

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

    ScannerСканер делит входные данные на токены по шаблону разделителя. По умолчанию шаблон соответствует пробелам. Полученные токены затем преобразуются в значения разных типов с помощью методаnext方法。

    Например, этот код позволяет пользователю читать числа изSystem.inSystem.in:

    
         Scanner sc = new Scanner(System.in);
         int i = sc.nextInt();
     

    В качестве другого примера этот код позволяет присваивать значения из файлаmyNumbersэлементам.longТип:

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

    Сканнер может использовать разделители, отличные от пробелов. Этот пример читает несколько элементов из строки:

    
         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();
     

    4502201395911 определяет default whitespace delimiter, который использует сканнер.reset()Метод сбрасывает значение разделителя сканнера на пробел по умолчанию. Это работает независимо от того, менялся ли разделитель ранее.

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

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

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

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

    В зависимости от типа шаблона разделения сканнер может возвращать пустые токены. Например, шаблон"\\s+"не возвращает пустые токены, потому что он совпадает с несколькими экземплярами разделителя."\\s"模式"\\s"может возвращать пустые токены, потому что он пропускает только один пробел за раз.

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

    закрывается, он закрывает свой источник ввода. Это происходит, если источник реализуетScannerинтерфейс.CloseableИспользование без внешней синхронизации небезопасно в многопоточном режиме.

    ScannerЕсли не указано иное, передача параметра

    вnull参数传递给null任何方法Scannerприведёт к выбросу исключенияNullPointerException 。

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

    Localized numbers

    Экземпляры этого класса сканируют числа в стандартном формате и в формате локали сканера. Начальная локаль сканера — это значение, возвращаемое методом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 Строка, представляющая not-a-number для значений с плавающей точкой, то есть
    dfs. getNaN()
    LocalInfinity Строка, представляющая бесконечность для значений с плавающей точкой, то есть
    dfs. getInfinity()

    Number syntax

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

    NonAsciiDigit : не-ASCII символ c,
    Character.isDigit (c)возвращает true. Non0Digit :
    [1- Rmax ] |NonASCIIDigit цифра :
    [0- Rmax ] |NonASCIIDigit GroupedNumeral :
    ( Non0Digit Digit?Digit?
    ( LocalGroupSeparator цифра цифра цифра)+ )
    цифра :
    ( ( 数字 + ) |GroupedNumeral)
    Integer :
    ( [-+]? ( 数字 ) )
    |LocalPositivePrefix Число LocalPositiveSuffix
    |LocalNegativePrefix Число LocalNegativeSuffix Десятичное число : Число
    |Число LocalDecimalSeparator Число*
    |LocalDecimalSeparator Число+
    Экспонента :
    ( [eE] [+-]? 数字 + )
    Decimal :
    ( [-+]?DecimalNumeral Экспонента? )
    |LocalPositivePrefix DecimalNumeral LocalPositiveSuffix Exponent?
    |LocalNegativePrefix DecimalNumeral LocalNegativeSuffix Exponent?
    HexFloat :
    [-+]? 0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+ ([pP][-+]?[0-9]+)?
    Нечисловое значение :
    NaN |LocalNan| Infinity |LocalInfinity SignedNonNumber :
    ( [-+]?NonNumber)
    |LocalPositivePrefix NonNumber LocalPositiveSuffix
    |LocalNegativePrefix NonNumber LocalPositiveSuffix Float : Десятичное
    |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, если следующий токен во входных данных этого сканера можно интерпретировать с помощью методаnextBigDecimal()какBigDecimal则返回true.
      boolean hasNextBigInteger()
      Возвращает true, если следующий токен во входных данных этого сканера можно интерпретировать с помощью методаnextBigInteger()в системе счисления по умолчанию какBigInteger ,则返回true.
      boolean hasNextBigInteger​(int radix)
      Возвращает true, если следующий токен во входных данных этого сканера можно интерпретировать с помощью методаnextBigInteger()в указанной системе счисления какBigInteger ,则返回true.
      boolean hasNextBoolean()
      Возвращает true, если следующий токен во входных данных этого сканера можно интерпретировать как логическое значение с помощью шаблона без учёта регистра, созданного из строки "true | false".
      boolean hasNextByte()
      Возвращает true, если следующий токен во входных данных этого сканера можно интерпретировать как значение типа byte в системе счисления по умолчанию с помощью методаnextByte().
      boolean hasNextByte​(int radix)
      Возвращает true, если следующий токен во входных данных этого сканера можно интерпретировать как значение типа byte в указанной системе счисления с помощью методаnextByte().
      boolean hasNextDouble()
      Если используетсяnextDouble()метод, который интерпретирует следующий токен из входных данных этого сканера как значение double, возвращается true.
      boolean hasNextFloat()
      Если используетсяnextFloat()метод, который интерпретирует следующий токен из входных данных этого сканера как значение с плавающей точкой, возвращается true.
      boolean hasNextInt()
      Если используетсяnextInt()метод, который интерпретирует следующий токен из входных данных этого сканера как значение int в системе счисления по умолчанию, возвращается true.
      boolean hasNextInt​(int radix)
      Если следующий токен из входных данных этого сканера можно интерпретировать с помощьюnextInt()метода как значение int в указанной системе счисления, возвращается true.
      boolean hasNextLine()
      Если во входных данных этого сканера есть ещё одна строка, возвращается true.
      boolean hasNextLong()
      Если используетсяnextLong()метод, который интерпретирует следующий токен из входных данных этого сканера как значение long в системе счисления по умолчанию, возвращается true.
      boolean hasNextLong​(int radix)
      Если используетсяnextLong()метод, который интерпретирует следующий токен из входных данных этого сканера как значение long в указанной системе счисления, возвращается true.
      boolean hasNextShort()
      Если используетсяnextShort()метод, который интерпретирует следующий токен из входных данных этого сканера как значение short в системе счисления по умолчанию, возвращается true.
      boolean hasNextShort​(int radix)
      Если следующий токен из входных данных этого сканера можно интерпретировать с помощьюnextShort()метода как значение short в указанной системе счисления, возвращается true.
      IOException ioException()
      ВозвращаетIOExceptionбазовое Scannerисключение, которое было последним выброшено этим Readable 。
      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 。
      Scanner useDelimiter​(String pattern)
      Устанавливает шаблон разделителя этого сканера в шаблон, построенный из указанногоString.
      Scanner useDelimiter​(Pattern pattern)
      Устанавливает шаблон разделителя этого сканера в указанный шаблон.
      Scanner useLocale​(Locale locale)
      Устанавливает языковой стандарт этого сканера в указанный языковой стандарт.
      Scanner useRadix​(int radix)
      Устанавливает основание системы счисления по умолчанию для этого сканера в указанное основание.
    • 构造方法详细信息

      • Scanner

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

        public Scanner​(InputStream source)
        Создаёт новыйScanner, который генерирует значения, отсканированные из указанного входного потока. Байты в потоке преобразуются в символы с использованием default charset базовой платформы.
        Параметры
        source- входной поток для сканирования
      • 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, который выдаёт значения, считанные из указанного файла. Байты из файла преобразуются в символы с помощью default charset базовой платформы.
        Параметры
        source- файл для сканирования. Исключения
        FileNotFoundException- если источник не найден
      • 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, который выдаёт значения, считанные из указанного файла. Байты из файла преобразуются в символы с помощью default charset базовой платформы.
        Параметры
        source- путь к файлу для сканирования. Исключение
        IOException- если при открытии источника произошла ошибка ввода-вывода. Начиная с версии: 1.7
      • 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, который выдает значения, считанные из указанного канала. Байты из источника преобразуются в символы с помощью default charset базовой платформы.
        Параметры
        source- канал для сканирования
      • 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()
        Закрывает этот сканер. Если этот сканер ещё не закрыт и его базовый readable также реализует

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

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

        Specified by:
        close在界面 AutoCloseable
        Specified by:
        close在界面 Closeable
      • ioException

        public IOException ioException()
        ВозвращаетIOExceptionбазовыйScanner, выброшенный последним через этотReadable. Если такого исключения нет, метод возвращаетnull 。
        Результат Последнее исключение, выброшенное readable этого сканера
      • delimiter

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

        public Scanner useDelimiter​(Pattern pattern)
        Устанавливает шаблон разделителя этого сканера в указанный шаблон.
        Параметры
        pattern - patternшаблон Результат Этот сканер
      • useDelimiter

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

        useDelimiter(pattern)ведёт себя так же, как вызовuseDelimiter(Pattern.compile(pattern)) 。

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

        Параметры
        pattern- строка, задающая шаблон разделителя Результат Этот сканер
      • locale

        public Locale locale()
        Возвращает языковой стандарт этого сканера. Языковой стандарт сканера влияет на многие элементы сопоставления примитивов по умолчанию, см. localized numbers выше.

        Результат Языковой стандарт этого сканера
      • useLocale

        public Scanner useLocale​(Locale locale)
        Устанавливает языковой стандарт этого сканера в указанное значение. Языковой стандарт сканера влияет на многие элементы примитивов, сопоставляемых с регулярным выражением. См. раздел localized numbers выше.

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

        Параметры
        locale- строка, задающая используемый языковой стандарт. Результат Этот сканер
      • radix

        public int radix()
        Возвращает основание системы счисления по умолчанию для этого сканера. Основание сканера влияет на числовые элементы по умолчанию, сопоставляемые с регулярным выражением. См. раздел localized numbers выше.

        Результат Основание системы счисления по умолчанию для этого сканера
      • useRadix

        public Scanner useRadix​(int radix)
        Устанавливает основание системы счисления этого сканера в указанное значение. Основание сканера влияет на числовые элементы по умолчанию, сопоставляемые с регулярным выражением. См. раздел localized numbers выше.

        Если основание меньшеCharacter.MIN_RADIXили большеCharacter.MAX_RADIX ,则抛出IllegalArgumentException 。

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

        Параметры
        radix- основание системы счисления для сканирования чисел. Результат Этот сканер. Исключения
        IllegalArgumentException- если основание выходит за пределы диапазона
      • match

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

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

        Результат Результат сопоставления последней операции сопоставления. Исключения
        IllegalStateException- если результат сопоставления недоступен
      • toString

        public String toString()

        Возвращает строковое представление этогоScanner的字符串表示Scanner.Scanner的字符串表示Scannerсодержит информацию, полезную при отладке. Конкретный формат не определён.

        Перезапись:
        toStringКатегории курса Object
        Результат: строковое представление этого сканера
      • hasNext

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

        public String next()
        Находит и возвращает следующий полный токен из этого сканера. Перед токеном и после него находится ввод, соответствующий шаблону разделителя. Даже если предыдущий вызовhasNext()返回true , этот метод может блокироваться при ожидании сканирования ввода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))方式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 этот метод может блокироваться в ожидании ввода для сканирования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)).

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

        Если horizon отрицательный, выбрасывается IllegalArgumentException.

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

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

        NoSuchElementException 。

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

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

        Параметры
        pattern- строка, задающая шаблон для пропуска Результат этот сканер Исключения
        NoSuchElementException- если заданный шаблон не найден
        IllegalStateException- если этот сканер закрыт
      • skip

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

        skip(pattern)ведёт себя так же, как вызовskip(Pattern.compile(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- если следующий токен не соответствует регулярному выражению целого числа или выходит за пределы диапазона
        NoSuchElementException- если ввод исчерпан
        IllegalStateException- если этот сканер закрыт
      • nextByte

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

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

        Если основание меньшеCharacter.MIN_RADIXили большеCharacter.MAX_RADIX ,则抛出IllegalArgumentException 。

        Параметры
        radix- основание для интерпретации токена как значения типа byte Результат сканируется из входных данных
        byte
        Исключения
        InputMismatchException- если следующий токен не соответствует регулярному выражению целого числа или выходит за пределы диапазона
        NoSuchElementException- если входные данные исчерпаны
        IllegalStateException- если этот сканер закрыт
        IllegalArgumentException- если основание вне допустимого диапазона
      • hasNextShort

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

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

        Character.MIN_RADIXили большеCharacter.MAX_RADIX ,则抛出IllegalArgumentException 。

        Параметры
        radix- основание для интерпретации токена как короткого значения Результат true тогда и только тогда, когда следующий токен этого сканера является допустимым коротким значением в указанном основании Исключения
        IllegalStateException- если этот сканер закрыт
        IllegalArgumentException- если основание вне допустимого диапазона
      • nextShort

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

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

        Результат сканируется из входных данных
        short
        Исключения
        InputMismatchException- если следующий токен не соответствует регулярному выражению целого числа или выходит за пределы диапазона
        NoSuchElementException- если входные данные исчерпаны
        IllegalStateException- если этот сканер закрыт
      • nextShort

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

        shortзначение так, как будто удалены все префиксы, разделители групп и суффиксы, зависящие от локали, затем черезCharacter.digitне-ASCII цифры отображаются в ASCII цифры, а если существуют отрицательный префикс и суффикс локали, знак минус ( - ) передаётся в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- если следующий токен не соответствует регулярному выражению целого числа или выходит за пределы диапазона
        NoSuchElementException- если входные данные исчерпаны
        IllegalStateException- если этот сканер закрыт
      • nextInt

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

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

        Если основание меньшеCharacter.MIN_RADIXили большеCharacter.MAX_RADIX ,则抛出IllegalArgumentException 。

        Параметры
        radix- основание для интерпретации токена как значения int Результат
        intСканирует из входных данных. Исключение
        InputMismatchException- если следующий токен не соответствует регулярному выражению целого числа или выходит за пределы диапазона
        NoSuchElementException- если входные данные исчерпаны
        IllegalStateException- если этот сканер закрыт
        IllegalArgumentException- если основание выходит за пределы диапазона
      • hasNextLong

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

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

        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. Если следующий токен нельзя преобразовать в допустимое значение типа long, этот метод выбрасываетInputMismatchException, как описано ниже. При успешном преобразовании сканер продвигается за совпавшие входные данные. Если следующий токен соответствует регулярному выражению Integer, определённому выше, токен преобразуется в

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

        Если основание меньшеCharacter.MIN_RADIXили большеCharacter.MAX_RADIX ,则抛出IllegalArgumentException 。

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

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

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

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

        Результат Сканирует из входных данных
        float
        Исключения
        InputMismatchException- если следующий токен не соответствует регулярному выражению Float или выходит за пределы диапазона
        NoSuchElementException- если ввод исчерпан
        IllegalStateException- если этот сканер закрыт
      • hasNextDouble

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

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

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

        Результат считывает из ввода
        double
        Исключения
        InputMismatchException- если следующий токен не соответствует регулярному выражению Float или выходит за пределы диапазона
        NoSuchElementException- если ввод исчерпан
        IllegalStateException- если этот сканер закрыт
      • hasNextBigInteger

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

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

        Character.MIN_RADIXили большеCharacter.MAX_RADIX ,则抛出IllegalArgumentException 。

        Параметры
        radix- основание системы счисления для интерпретации токена как целого числа. Результат true тогда и только тогда, когда следующий токен этого сканера является допустимым
        BigInteger
        Исключения
        IllegalStateException- если этот сканер закрыт
        IllegalArgumentException- если основание выходит за пределы диапазона
      • nextBigInteger

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

        nextBigInteger()этого метода в формеnextBigInteger(radix) ,其中radix, где

        — основание по умолчанию этого сканера.
        BigIntegerРезультат
        InputMismatchExceptionсканируется из входных данных. Исключения
        NoSuchElementException- если следующий токен не соответствует регулярному выражению Integer или выходит за пределы диапазона
        IllegalStateException- если входные данные исчерпаны
      • nextBigInteger

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

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

        Если основание меньшеCharacter.MIN_RADIXили большеCharacter.MAX_RADIX ,则抛出IllegalArgumentException 。

        Параметры
        radix- основание для интерпретации токена. Результат
        BigInteger
        сканируется из входных данных. Исключения
        InputMismatchException- если следующий токен не соответствует регулярному выражению Integer или выходит за пределы диапазона
        NoSuchElementException- если входные данные исчерпаны
        IllegalStateException- если этот сканер закрыт
        IllegalArgumentException- если основание выходит за пределы диапазона
      • hasNextBigDecimal

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

        public BigDecimal nextBigDecimal()
        сканирует следующий токен из входных данных какBigDecimal. Если следующий токен соответствует регулярному выражению Decimal, определённому выше, токен преобразуется в значение

        BigDecimalтак, как будто все разделители групп удалены, черезCharacter.digitОтображает не-ASCII цифры в ASCII-цифры и передаёт полученную строку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()находит совпадения, поток содержит те же результаты в том же порядке, полученные вызовомfindWithinHorizon(pattern, 0)иmatch()Возврат. Полученный поток является последовательным и упорядоченным. Все элементы потока не равны null.

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

        .

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

        .findWithinHorizon()Как и метод

        , этот метод может блокироваться в ожидании других входных данных и может буферизовать неограниченный объём входных данных при поиске совпадения.
           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()); }  
        Примечание к API: например, следующий код читает файл и возвращает список всех последовательностей символов из семи и более латинских заглавных букв:
        patternПараметры
        NullPointerException- шаблон для сопоставления Результат поток последовательных результатов сопоставления Исключения
        IllegalStateException- если pattern равен null
      • findAll

        public Stream<MatchResult> findAll​(String patString)
        findAll
           scanner.findAll(Pattern.compile(patString))  
        Возвращает поток результатов сопоставления, соответствующих заданной строке шаблона. Эффект эквивалентен следующему коду:
        patStringПараметры
        NullPointerException- строка шаблона Результат поток последовательных результатов сопоставления Исключения
        IllegalStateException- если patString равна null
        PatternSyntaxException- если этот сканер закрыт
        Pattern