模块  java.base
Paket java.util

Klasse Scanner

  • Implementierte Schnittstellen
    Closeable , AutoCloseable , Iterator<String>

    public final class Scanner
    extends Object
    implements Iterator<String>, Closeable
    Ein einfacher Textscanner, der primitive Typen und Strings mit regulären Ausdrücken parst.

    ScannerDer Scanner zerlegt seine Eingabe mit einem Trennzeichenmuster in Token. Dieses Muster passt standardmäßig auf Leerzeichen. Die erzeugten Token lassen sich dann mit verschiedenen next-Methoden in Werte unterschiedlicher Typen umwandeln.next方法。

    Beispielsweise erlaubt dieser Code dem Benutzer, Zahlen vonSystem.inzu lesen:

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

    Als weiteres Beispiel erlaubt dieser Code, Zahlen aus der DateimyNumberszuzuweisenlongTyp:

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

    Der Scanner kann auch Trennzeichen außerhalb von Leerzeichen verwenden. Dieses Beispiel liest mehrere Elemente aus einem String:

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

    Die Ausgabe sieht folgendermaßen aus:

    
         1
         2
         red
         blue
     

    Derselbe Output entsteht mit diesem Code. Der Code parst alle vier Token auf einmal mit einem regulären Ausdruck:

    
         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 erkennt das default whitespace delimiter, das der Scanner verwendet.reset()Die Methode setzt den Wert des Scanner-Trennzeichens auf das Standard-Leerzeichen-Trennzeichen zurück, unabhängig von früheren Änderungen.

    Scanvorgänge blockieren möglicherweise und warten auf Eingaben.

    next()undhasNext()Die Methoden und ihre Begleitmethoden (zum BeispielnextInt()undhasNextInt()) überspringen zuerst jede Eingabe, die dem Trennzeichen-Muster entspricht. Danach versuchen sie, das nächste Token zurückzugeben.hasNext()和next()Die Methoden blockieren beide möglicherweise und warten auf weitere Eingaben.hasNext()Ob die Methode blockiert, hängt davon ab, ob die zugehörigenext()Methode blockiertnext().tokens()Die Methode blockiert ebenfalls möglicherweise und wartet auf Eingaben.

    derfindInLine(),findWithinHorizon(),skip()undfindAll()Die Methoden arbeiten unabhängig vom Trennzeichen-Muster. Diese Methoden versuchen, das angegebene Muster ohne Rücksicht auf Trennzeichen in der Eingabe zu matchen. Deshalb verwenden Sie sie in Sonderfällen, in denen Trennzeichen keine Rolle spielen. Diese Methoden blockieren möglicherweise und warten auf weitere Eingaben.

    Wenn der ScannerInputMismatchExceptionauslöst, gibt der Scanner das Token, das die Ausnahme verursacht hat, nicht weiter. Deshalb lässt es sich mit anderen Methoden abrufen oder überspringen.

    Je nach Typ des Trennmusters gibt die Methode leere Token zurück. Zum Beispiel gibt das Muster"\\s+"keine leeren Token zurück, weil es mehrere Instanzen des Trennzeichens matcht."\\s"模式"\\s"gibt leere Token zurück, weil es jeweils nur ein Leerzeichen durchläuft.

    Ein Scanner kann Text aus jedem Objekt lesen, das dasReadableInterface implementiert. Wenn ein Aufruf der zugrunde liegenden read-Methoderead()auslöst, nimmt der Scanner an, dass das Ende der Eingabe erreicht ist. Die neuesteIOExceptionlässt sich mit derioException()Methode abrufen, die vom zugrunde liegenden Readable ausgelöst wurdeIOException 。

    WennScannergeschlossen wird und die Quelle dasCloseableInterface implementiert, schließt der Scanner seine Eingabequelle.

    ScannerDie Klasse ist nicht sicher für die Verwendung in mehreren Threads ohne externe Synchronisation.

    Sofern nicht anders angegeben, übergeben Sie dennullParameter annull任何方法Scannerführt zum Auslösen einerNullPointerException 。

    Außer wenn mit der MethodeuseRadix(int)eine andere Basis gesetzt wurde, interpretiert der Scanner Zahlen standardmäßig als Dezimalzahlen. Unabhängig davon, ob der Scanner zuvor geändert wurde, setzt die Methodereset()den Wert der Scanner-Basis auf10 。

    Lokalisierte Zahlen

    Instanzen dieser Klasse können Zahlen im Standardformat sowie im Format der Spracheinstellung des Scanners scannen. Die anfängliche Locale des Scanners ist der Wert, den die MethodeLocale.getDefault(Locale.Category.FORMAT)zurückgibt. Sie lässt sich mit der MethodeuseLocale()ändern.reset()Die Methode

    setzt den Wert der Locale des Scanners auf die anfängliche Locale zurück, unabhängig davon, ob sie zuvor geändert wurde.DecimalFormat对象dfObjektDecimalFormatSymbols对象dfs 。

    LocalGroupSeparator Das Zeichen zur Trennung von Tausendergruppen, also
    dfs. getGroupingSeparator()
    LocalDecimalSeparator Das Zeichen für den Dezimalpunkt, also
    dfs. getDecimalSeparator()
    LocalPositivePrefix Die Zeichenkette vor einer positiven Zahl (kann leer sein), also
    df. getPositivePrefix()
    LocalPositiveSuffix Die Zeichenkette nach einer positiven Zahl (kann leer sein), also
    df. getPositiveSuffix()
    LocalNegativePrefix Die Zeichenkette vor einer negativen Zahl (kann leer sein), also
    df. getNegativePrefix()
    LocalNegativeSuffix Die Zeichenkette nach einer negativen Zahl (kann leer sein), also
    df. getNegativeSuffix()
    LocalNaN Die Zeichenkette, die für Gleitkommawerte "Not a Number" darstellt, also
    dfs. getNaN()
    LocalInfinity Die Zeichenkette, die für Gleitkommawerte Unendlichkeit darstellt, also
    dfs. getInfinity()

    Zahlensyntax

    Instanzen dieser Klasse parsen Zeichenketten nach der folgenden regulären Syntax in Zahlen. Dabei ist Rmax die höchste Ziffer der verwendeten Basis. In der Basis 10 ist Rmax zum Beispiel 9.

    NonAsciiDigit: Ein Nicht-ASCII-Zeichen c,
    Character.isDigit (c)das true zurückgibt. Non0Digit:
    [1- Rmax ] |NonASCIIDigit Ziffer:
    [0- Rmax ] |NonASCIIDigit GroupedNumeral:
    ( Non0Digit Digit?Digit?
    ( LocalGroupSeparator Ziffer Ziffer Ziffer)+ )
    Zahl:
    ( ( 数字 + ) |GroupedNumeral)
    Integer:
    ( [-+]? ( 数字 ) )
    |LocalPositivePrefix Zahlen LocalPositiveSuffix
    |LocalNegativePrefix Zahlen LocalNegativeSuffix Dezimalzahl : Zahlen
    |Zahlen LocalDecimalSeparator Zahlen*
    |LocalDecimalSeparator Zahlen+
    Exponent :
    ( [eE] [+-]? 数字 + )
    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]+)?
    Nicht-Zahl :
    NaN |LocalNan| Infinity |LocalInfinity SignedNonNumber :
    ( [-+]?NonNumber)
    |LocalPositivePrefix NonNumber LocalPositiveSuffix
    |LocalNegativePrefix NonNumber LocalPositiveSuffix Float : Dezimal
    |HexFloat|SignedNonNumber In den obigen regulären Ausdrücken sind Leerzeichen nicht relevant.

    Seit Version: 1.5
    • 构造方法摘要

      Konstruktor Konstruktor Beschreibung
      Scanner​(File source)
      Erstellt ein neuesScanner Objekt, das Werte aus der angegebenen Datei liest.
      Scanner​(File source, String charsetName)
      Erstellt ein neuesScanner Objekt, das Werte aus der angegebenen Datei liest.
      Scanner​(File source, Charset charset)
      Erstellt ein neuesScanner Objekt, das Werte aus der angegebenen Datei liest.
      Scanner​(InputStream source)
      Erstellt ein neuesScanner Objekt, das Werte aus dem angegebenen Eingabestrom liest.
      Scanner​(InputStream source, String charsetName)
      Erstellt ein neuesScanner Objekt, das Werte aus dem angegebenen Eingabestrom liest.
      Scanner​(InputStream source, Charset charset)
      Erstellt ein neuesScanner Objekt, das Werte aus dem angegebenen Eingabestrom liest.
      Scanner​(Readable source)
      Erstellt ein neuesScanner Objekt, das Werte aus der angegebenen Quelle liest.
      Scanner​(String source)
      Erstellt ein neuesScanner Objekt, das Werte aus der angegebenen Zeichenkette liest.
      Scanner​(ReadableByteChannel source)
      Erstellt ein neuesScanner , das Werte aus dem angegebenen Kanal scannen kann.
      Scanner​(ReadableByteChannel source, String charsetName)
      Erstellen Sie ein neuesScanner , das Werte aus dem angegebenen Kanal scannen kann.
      Scanner​(ReadableByteChannel source, Charset charset)
      Erstellen Sie ein neuesScanner , das Werte aus dem angegebenen Kanal scannen kann.
      Scanner​(Path source)
      Erstellen Sie ein neuesScanner , das Werte aus der angegebenen Datei scannt.
      Scanner​(Path source, String charsetName)
      Erstellen Sie ein neuesScanner , das Werte aus der angegebenen Datei scannt.
      Scanner​(Path source, Charset charset)
      Erstellen Sie ein neuesScanner , das Werte aus der angegebenen Datei scannt.
    • 方法摘要

      Alle Methoden Instanzmethoden Konkrete Methoden Variablen und Typ Methode Beschreibung
      void close()
      Schließt diesen Scanner.
      Pattern delimiter()
      GibtPatterndas Scanneraktuell zum Abgleich des Trennzeichens verwendet wird, zurück.
      Stream<MatchResult> findAll​(String patString)
      Gibt einen Stream von Übereinstimmungsergebnissen zurück, die zur bereitgestellten Musterzeichenfolge passen.
      Stream<MatchResult> findAll​(Pattern pattern)
      Gibt einen Stream von Übereinstimmungsergebnissen dieses Scanners zurück.
      String findInLine​(String pattern)
      Sucht das nächste Muster, das aus der angegebenen Zeichenfolge erstellt wurde, und ignoriert dabei das Trennzeichen.
      String findInLine​(Pattern pattern)
      Sucht die nächste Übereinstimmung mit dem angegebenen Muster und ignoriert dabei das Trennzeichen.
      String findWithinHorizon​(String pattern, int horizon)
      Sucht das nächste Muster, das aus der angegebenen Zeichenfolge erstellt wurde, und ignoriert dabei das Trennzeichen.
      String findWithinHorizon​(Pattern pattern, int horizon)
      Sucht die nächste Übereinstimmung mit dem angegebenen Muster.
      boolean hasNext()
      Gibt true zurück, wenn sich ein weiteres Token in der Eingabe dieses Scanners befindet.
      boolean hasNext​(String pattern)
      Gibt true zurück, wenn das nächste Token dem Muster entspricht, das aus der angegebenen Zeichenfolge erstellt wurde.
      boolean hasNext​(Pattern pattern)
      Gibt true zurück, wenn das nächste vollständige Token dem angegebenen Muster entspricht.
      boolean hasNextBigDecimal()
      Gibt true zurück, wenn das nächste Token in der Eingabe dieses Scanners mit dernextBigDecimal()Methode alsBigDecimal则返回true.
      boolean hasNextBigInteger()
      Gibt true zurück, wenn das nächste Token in der Eingabe dieses Scanners mit dernextBigInteger()Methode in der Standardbasis alsBigInteger ,则返回true.
      boolean hasNextBigInteger​(int radix)
      Gibt true zurück, wenn das nächste Token in der Eingabe dieses Scanners mit dernextBigInteger()Methode in der angegebenen Basis alsBigInteger ,则返回true.
      boolean hasNextBoolean()
      Gibt true zurück, wenn das nächste Token in der Eingabe dieses Scanners als boolescher Wert interpretiert werden kann. Dabei wird ein Muster ohne Groß-/Kleinschreibung verwendet, das aus der Zeichenfolge „true | false" erstellt wurde.
      boolean hasNextByte()
      Gibt true zurück, wenn das nächste Token in der Eingabe dieses Scanners mit dernextByte()Methode als Bytewert in der Standardbasis interpretiert werden kann.
      boolean hasNextByte​(int radix)
      Gibt true zurück, wenn das nächste Token in der Eingabe dieses Scanners mit dernextByte()Methode als Bytewert in der angegebenen Basis interpretiert werden kann.
      boolean hasNextDouble()
      Gibt true zurück, wennnextDouble()der nächste Token in der Eingabe dieses Scanners als double-Wert mit der Methode interpretiert werden kann.
      boolean hasNextFloat()
      Gibt true zurück, wennnextFloat()der nächste Token in der Eingabe dieses Scanners als Gleitkommawert mit der Methode interpretiert werden kann.
      boolean hasNextInt()
      Gibt true zurück, wennnextInt()der nächste Token in der Eingabe dieses Scanners als int-Wert im Standardradix mit der Methode interpretiert werden kann.
      boolean hasNextInt​(int radix)
      Gibt true zurück, wenn der nächste Token in der Eingabe dieses ScannersnextInt()mit der Methode als int-Wert im angegebenen Radix interpretiert werden kann.
      boolean hasNextLine()
      Gibt true zurück, wenn die Eingabe dieses Scanners eine weitere Zeile enthält.
      boolean hasNextLong()
      Gibt true zurück, wennnextLong()der nächste Token in der Eingabe dieses Scanners als long-Wert im Standardradix mit der Methode interpretiert werden kann.
      boolean hasNextLong​(int radix)
      Gibt true zurück, wennnextLong()der nächste Token in der Eingabe dieses Scanners mit der Methode als long-Wert im angegebenen Radix interpretiert werden kann.
      boolean hasNextShort()
      Gibt true zurück, wennnextShort()der nächste Token in der Eingabe dieses Scanners mit der Methode als short-Wert im Standardradix interpretiert werden kann.
      boolean hasNextShort​(int radix)
      Gibt true zurück, wenn der nächste Token in der Eingabe dieses ScannersnextShort()mit der Methode als short-Wert im angegebenen Radix interpretiert werden kann.
      IOException ioException()
      GibtIOExceptiondas grundlegende Scannerzurück, das zuletzt durch diesen Readable 。
      Locale locale()
      Gibt das Gebietsschema dieses Scanners zurück.
      MatchResult match()
      Gibt das Übereinstimmungsergebnis der letzten von diesem Scanner ausgeführten Scanoperation zurück.
      String next()
      Sucht den nächsten vollständigen Token in diesem Scanner und gibt ihn zurück.
      String next​(String pattern)
      Gibt den nächsten Token zurück, wenn er mit dem aus dem angegebenen String konstruierten Muster übereinstimmt.
      String next​(Pattern pattern)
      Gibt den nächsten Token zurück, wenn er mit dem angegebenen Muster übereinstimmt.
      BigDecimal nextBigDecimal()
      Scannt den nächsten Token der Eingabe alsBigDecimal.
      BigInteger nextBigInteger()
      Scannt den nächsten Token der Eingabe alsBigInteger.
      BigInteger nextBigInteger​(int radix)
      Scannt den nächsten Token der Eingabe alsBigInteger.
      boolean nextBoolean()
      Scannt den nächsten Token der Eingabe als booleschen Wert und gibt diesen Wert zurück.
      byte nextByte()
      Scannt den nächsten Token der Eingabe alsbyte 。
      byte nextByte​(int radix)
      Scannt den nächsten Token der Eingabe alsbyte 。
      double nextDouble()
      Scannt den nächsten Token der Eingabe alsdouble 。
      float nextFloat()
      Scannt den nächsten Token der Eingabe alsfloat 。
      int nextInt()
      Scannt das nächste Token der Eingabe alsint 。
      int nextInt​(int radix)
      Scannt das nächste Token der Eingabe alsint 。
      String nextLine()
      Setzt diesen Scanner über die aktuelle Zeile hinaus fort und gibt die übersprungene Eingabe zurück.
      long nextLong()
      Scannt das nächste Token der Eingabe alslong 。
      long nextLong​(int radix)
      Scannt das nächste Token der Eingabe alslong 。
      short nextShort()
      Scannt das nächste Token der Eingabe alsshort 。
      short nextShort​(int radix)
      Scannt das nächste Token der Eingabe alsshort 。
      int radix()
      Gibt die Standardbasis dieses Scanners zurück.
      void remove()
      IteratorDiese Implementierung von
      Scanner reset()
      unterstützt keine Entfernungsoperation.
      Scanner skip​(String pattern)
      Setzt diesen Scanner zurück.
      Scanner skip​(Pattern pattern)
      Überspringt Eingaben, die zum Muster passen, das aus dem angegebenen String konstruiert wurde.
      Stream<String> tokens()
      Überspringt Eingaben, die zum angegebenen Muster passen, und ignoriert Trennzeichen.
      String toString()
      Gibt einen Strom von durch Trennzeichen getrennten Tokens von diesem Scanner zurück.ScannerGibt die String-Darstellung dieses Scanner 。
      Scanner useDelimiter​(String pattern)
      Setzt das Trennungsmuster dieses Scanners auf das Muster, das aus dem angegebenenStringkonstruiert wurde.
      Scanner useDelimiter​(Pattern pattern)
      Setzt das Trennungsmuster dieses Scanners auf das angegebene Muster.
      Scanner useLocale​(Locale locale)
      Setzt das Gebietsschema dieses Scanners auf das angegebene Gebietsschema.
      Scanner useRadix​(int radix)
      Setzt die Standardbasis dieses Scanners auf die angegebene Basis.
    • 构造方法详细信息

      • Scanner

        public Scanner​(Readable source)
        Konstruiert einen neuenScanner , der Werte erzeugt, die aus der angegebenen Quelle gescannt werden.
        Parameter
        source- Zeichenquelle, die dasReadableInterface implementiert
      • Scanner

        public Scanner​(InputStream source)
        Konstruiert einen neuenScanner, der Werte erzeugt, die aus dem angegebenen Eingabestrom gescannt werden. Konvertiert Bytes im Strom mit dem default charset der zugrunde liegenden Plattform in Zeichen.
        Parameter
        source- Der zu scannende Eingabestrom
      • Scanner

        public Scanner​(InputStream source,
                       String charsetName)
        Konstruiert einen neuenScanner, der Werte aus dem angegebenen Eingabestrom scannt. Die Bytes im Strom werden mit dem angegebenen Zeichensatz in Zeichen umgewandelt.
        Parameter
        source- Der zu scannende Eingabestrom
        charsetName- Der Kodierungstyp, der die Bytes im Strom in zu scannende Zeichen umwandelt. Ausnahmen
        IllegalArgumentException- Wenn der angegebene Zeichensatz nicht existiert
      • Scanner

        public Scanner​(InputStream source,
                       Charset charset)
        Konstruiert einen neuenScanner, der Werte aus dem angegebenen Eingabestrom scannt. Die Bytes im Strom werden mit dem angegebenen Zeichensatz in Zeichen umgewandelt.
        Parameter
        source- Der zu scannende Eingabestrom
        charset- Der Zeichensatz, der die Bytes im Strom in zu scannende Zeichen umwandelt. Seit Version: 10
      • Scanner

        public Scanner​(File source)
                throws FileNotFoundException
        Konstruiert einen neuenScanner, der Werte aus der angegebenen Datei scannt. Die Bytes in der Datei werden mit dem default charset der zugrunde liegenden Plattform in Zeichen umgewandelt.
        Parameter
        source- Die zu scannende Datei. Ausnahmen
        FileNotFoundException- Wenn die Quelle nicht gefunden wird
      • Scanner

        public Scanner​(File source,
                       String charsetName)
                throws FileNotFoundException
        Konstruiert einen neuenScanner, der Werte aus der angegebenen Datei scannt. Die Bytes in der Datei werden mit dem angegebenen Zeichensatz in Zeichen umgewandelt.
        Parameter
        source- Die zu scannende Datei
        charsetName- Der Kodierungstyp, der die Bytes in der Datei in zu scannende Zeichen umwandelt. Ausnahmen
        FileNotFoundException- Wenn die Quelle nicht gefunden wird
        IllegalArgumentException- Wenn die angegebene Kodierung nicht gefunden wird
      • Scanner

        public Scanner​(File source,
                       Charset charset)
                throws IOException
        Konstruiert einen neuenScanner, der Werte aus der angegebenen Datei scannt. Die Bytes in der Datei werden mit dem angegebenen Zeichensatz in Zeichen umgewandelt.
        Parameter
        source- Die zu scannende Datei
        charset- Der Zeichensatz, der die Bytes in der Datei in zu scannende Zeichen umwandelt. Ausnahmen
        IOException- Wenn beim Öffnen der Quelle ein I/O-Fehler auftritt. Seit Version: 10
      • Scanner

        public Scanner​(Path source)
                throws IOException
        Konstruiert einen neuenScanner, der Werte aus der angegebenen Datei scannt. Die Bytes in der Datei werden mit dem default charset der zugrunde liegenden Plattform in Zeichen umgewandelt.
        Parameter
        source- Pfad der zu scannenden Datei Ausnahme
        IOException- Wenn beim Öffnen der Quelle ein E/A-Fehler auftritt Seit Version: 1.7
      • Scanner

        public Scanner​(Path source,
                       String charsetName)
                throws IOException
        Konstruiert einen neuenScanner, der Werte erzeugt, die aus der angegebenen Datei gescannt werden. Die Bytes in der Datei werden mit dem angegebenen Zeichensatz in Zeichen umgewandelt.
        Parameter
        source- Pfad der zu scannenden Datei
        charsetName- Kodierungstyp, der die Bytes in der Datei in zu scannende Zeichen umwandelt Ausnahme
        IOException- Wenn beim Öffnen der Quelle ein E/A-Fehler auftritt
        IllegalArgumentException- Wenn die angegebene Kodierung nicht gefunden wird Seit Version: 1.7
      • Scanner

        public Scanner​(Path source,
                       Charset charset)
                throws IOException
        Konstruiert einen neuenScanner, der Werte erzeugt, die aus der angegebenen Datei gescannt werden. Die Bytes in der Datei werden mit dem angegebenen Zeichensatz in Zeichen umgewandelt.
        Parameter
        source- Pfad der zu scannenden Datei
        charset- Zeichensatz, der die Bytes in der Datei in zu scannende Zeichen umwandelt Ausnahme
        IOException- Wenn beim Öffnen der Quelle ein E/A-Fehler auftritt Seit Version: 10
      • Scanner

        public Scanner​(String source)
        Konstruiert einen neuenScanner , der Werte erzeugt, die aus dem angegebenen String gescannt werden.
        Parameter
        source- Der zu scannende String
      • Scanner

        public Scanner​(ReadableByteChannel source)
        Konstruiert einen neuenScanner, der Werte erzeugen kann, die aus dem angegebenen Kanal gescannt werden. Die Bytes aus der Quelle werden mit dem default charset der zugrunde liegenden Plattform in Zeichen umgewandelt.
        Parameter
        source- Der zu scannende Kanal
      • Scanner

        public Scanner​(ReadableByteChannel source,
                       String charsetName)
        Konstruiert einen neuenScanner, der Werte erzeugen kann, die aus dem angegebenen Kanal gescannt werden. Die Bytes aus der Quelle werden mit dem angegebenen Zeichensatz in Zeichen umgewandelt.
        Parameter
        source- Der zu scannende Kanal
        charsetName- Kodierungstyp, der die Bytes aus dem Kanal in zu scannende Zeichen umwandelt Ausnahme
        IllegalArgumentException- Wenn der angegebene Zeichensatz nicht existiert
      • Scanner

        public Scanner​(ReadableByteChannel source,
                       Charset charset)
        Konstruiert einen neuenScanner, der Werte erzeugen kann, die aus dem angegebenen Kanal gescannt werden. Die Bytes aus der Quelle werden mit dem angegebenen Zeichensatz in Zeichen umgewandelt.
        Parameter
        source- Der zu scannende Kanal
        charset- Kodierungstyp, der die Bytes aus dem Kanal in zu scannende Zeichen umwandelt Seit Version: 10
    • 方法详细信息

      • close

        public void close()
        Schließt diesen Scanner. Wenn dieser Scanner noch nicht geschlossen ist und das zugrunde liegende readable ebenfalls das

        CloseableInterface implementiert, wird diecloseMethode des readable aufgerufen. Wenn dieser Scanner bereits geschlossen ist, hat der Aufruf dieser Methode keine Wirkung.

        Der Versuch, nach dem Schließen des Scanners eine Suchoperation auszuführen, führt zuIllegalStateException.

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

        public IOException ioException()
        GibtIOExceptionzurück, das zuletzt durch diesesScannergeworfen wurdeReadable. Wenn keine solche Ausnahme existiert, gibt diese Methodenull 。
        Rückgabewert Die letzte Ausnahme des readable dieses Scanners
      • delimiter

        public Pattern delimiter()
        GibtPatterndas Scannerzurück, das dieser Scanner derzeit zum Abgleichen von Trennzeichen verwendet.
        Rückgabewert Das Trennzeichen-Muster dieses Scanners.
      • useDelimiter

        public Scanner useDelimiter​(Pattern pattern)
        Setzt das Trennzeichen-Muster dieses Scanners auf das angegebene Muster.
        Parameter
        pattern - patternMuster Rückgabewert Dieser Scanner
      • useDelimiter

        public Scanner useDelimiter​(String pattern)
        Setzt das Trennzeichen-Muster dieses Scanners auf ein Muster, das aus dem angegebenenStringkonstruiert wird. Der Aufruf

        useDelimiter(pattern)dieser Methode in der Form verhält sich wie der AufrufuseDelimiter(Pattern.compile(pattern)) 。

        Der Aufruf derreset()Methode setzt das Trennzeichen des Scanners auf default .

        Parameter
        pattern- Der String, der das Trennzeichen-Muster angibt Rückgabewert Dieser Scanner
      • locale

        public Locale locale()
        Gibt das Locale dieses Scanners zurück. Das Locale des Scanners beeinflusst viele Elemente der Standard-Primitiven, die mit regulären Ausdrücken abgeglichen werden. Siehe localized numbers oben.

        Rückgabewert Das Locale dieses Scanners
      • useLocale

        public Scanner useLocale​(Locale locale)
        Setzt das Locale dieses Scanners auf das angegebene Locale. Das Locale des Scanners beeinflusst viele Elemente der Standard-Primitiven, die mit regulären Ausdrücken abgeglichen werden. Siehe oben unter localized numbers.

        Der Aufruf derreset()Methode setzt das Locale des Scanners auf initial locale.

        Parameter
        locale- Ein String, der das zu verwendende Locale angibt. Rückgabewert Dieser Scanner
      • radix

        public int radix()
        Gibt die Standard-Basis dieses Scanners zurück. Die Basis des Scanners beeinflusst die Standard-Zahlelemente, die mit regulären Ausdrücken abgeglichen werden. Siehe oben unter localized numbers.

        Rückgabewert Die Standard-Basis dieses Scanners
      • useRadix

        public Scanner useRadix​(int radix)
        Setzt die Standard-Basis dieses Scanners auf die angegebene Basis. Die Basis des Scanners beeinflusst die Standard-Zahlelemente, die mit regulären Ausdrücken abgeglichen werden. Siehe oben unter localized numbers.

        Wenn die Basis kleiner alsCharacter.MIN_RADIXoder größer alsCharacter.MAX_RADIX ,则抛出IllegalArgumentException 。

        Der Aufruf derreset()Methode setzt die Basis des Scanners auf10 。

        Parameter
        radix- Die Basis, die beim Scannen von Zahlen verwendet wird. Rückgabewert Dieser Scanner. Ausnahme
        IllegalArgumentException- Wenn die Basis außerhalb des gültigen Bereichs liegt
      • match

        public MatchResult match()
        Gibt das Übereinstimmungsergebnis des letzten Scanvorgangs dieses Scanners zurück. Wenn kein Abgleich durchgeführt wurde oder der letzte AbgleichIllegalStateExceptionwar, löst diese MethodeIllegalStateExceptionaus. Verschiedene

        next的方法Scannerstellen das Übereinstimmungsergebnis bereit, wenn sie ohne Ausnahme abgeschlossen werden. Zum Beispiel gibt diese Methode nach dem Aufruf einernextInt()Methode, die ein int zurückgibt,MatchResultzurück, um den oben definierten Integer-Regular-Ausdruck zu suchen. Ebenso liefernfindInLine(),findWithinHorizon()undskip()ein Übereinstimmungsergebnis, wenn sie erfolgreich sind.

        Rückgabewert Das Übereinstimmungsergebnis der letzten Abgleich-Operation. Ausnahme
        IllegalStateException- Wenn kein Übereinstimmungsergebnis verfügbar ist
      • toString

        public String toString()

        Gibt die String-Darstellung diesesScanner的字符串表示Scannerzurück.Scanner的字符串表示Scannerenthält Informationen, die beim Debuggen nützlich sind. Das genaue Format ist nicht spezifiziert.

        Umschreiben:
        toStringKurskategorie Object
        Ergebnis Die String-Darstellung dieses Scanners
      • hasNext

        public boolean hasNext()
        Gibt true zurück, wenn ein weiteres Token in der Eingabe dieses Scanners vorhanden ist. Diese Methode kann beim Warten auf die Eingabescan blockieren. Der Scanner überschreitet keine Eingabe.
        Specified by:
        hasNext ,Schnittstelle Iterator<String>
        Ergebnis Gibt true zurück, wenn und nur wenn dieser Scanner ein weiteres Token hat Ausnahme
        IllegalStateException- wenn dieser Scanner geschlossen ist Siehe auch:
        Iterator
      • next

        public String next()
        Sucht das nächste vollständige Token von diesem Scanner und gibt es zurück. Vor und nach dem vollständigen Token steht Eingabe, die dem Trennzeichenmuster entspricht. Auch wenn ein vorheriger Aufruf vonhasNext()返回true kann diese Methode beim Warten auf die Eingabescantrue 。
        Specified by:
        nextSchnittstelle Iterator<String>
        Ergebnis Das nächste Token Ausnahme
        NoSuchElementException- wenn keine weiteren Token verfügbar sind
        IllegalStateException- wenn dieser Scanner geschlossen ist Siehe auch:
        Iterator
      • hasNext

        public boolean hasNext​(String pattern)
        Gibt true zurück, wenn das nächste Token mit dem aus dem angegebenen String konstruierten Muster übereinstimmt. Der Scanner überschreitet keine Eingabe. Der Aufruf dieser Methode in der Form

        hasNext(pattern)verhält sich wie der Aufruf vonhasNext(Pattern.compile(pattern)) 。

        Parameter
        pattern- Ein String, der das zu scannende Muster angibt Ergebnis Gibt true zurück, wenn und nur wenn dieser Scanner ein weiteres Token hat, das dem angegebenen Muster entspricht Ausnahme
        IllegalStateException- wenn dieser Scanner geschlossen ist
      • next

        public String next​(String pattern)
        Gibt das nächste Token zurück, wenn es mit dem aus dem angegebenen String konstruierten Muster übereinstimmt. Bei erfolgreichem Abgleich überschreitet der Scanner die Eingabe, die dem Muster entspricht. Der Aufruf dieser Methode in der Form

        next(pattern)verhält sich wie der Aufruf vonnext(Pattern.compile(pattern))方式next(Pattern.compile(pattern)) 。

        Parameter
        pattern- Ein String, der das zu scannende Muster angibt Ergebnis Das nächste Token Ausnahme
        NoSuchElementException- wenn kein solches Token verfügbar ist
        IllegalStateException- wenn dieser Scanner geschlossen ist
      • hasNext

        public boolean hasNext​(Pattern pattern)
        Gibt true zurück, wenn das nächste vollständige Token dem angegebenen Muster entspricht. Ein vollständiges Token ist ein Präfix, dessen Suffix zur Eingabe passt, die dem Trennzeichenmuster entspricht. Diese Methode kann beim Warten auf Eingabe blockieren. Der Scanner überspringt keine Eingabe.
        Parameter
        pattern- das zu scannende Muster Rückgabewert Gibt true zurück, wenn und nur wenn dieser Scanner ein weiteres Token hat, das dem angegebenen Muster entspricht Ausnahme
        IllegalStateException- wenn dieser Scanner geschlossen ist
      • next

        public String next​(Pattern pattern)
        Gibt das nächste Token zurück, wenn es dem angegebenen Muster entspricht. Auch wenn ein vorheriger Aufruf vonhasNext(Pattern)返回true kann diese Methode beim Warten auf Eingabe blockierentrue. Bei erfolgreicher Übereinstimmung überspringt der Scanner die Eingabe, die dem Muster entspricht.
        Parameter
        pattern- das zu scannende Muster Rückgabewert das nächste Token Ausnahme
        NoSuchElementException- wenn keine weiteren Tokens verfügbar sind
        IllegalStateException- wenn dieser Scanner geschlossen ist
      • hasNextLine

        public boolean hasNextLine()
        Gibt true zurück, wenn eine weitere Zeile in der Eingabe dieses Scanners vorhanden ist. Diese Methode kann beim Warten auf Eingabe blockieren. Der Scanner überspringt keine Eingabe.
        Rückgabewert true, wenn und nur wenn dieser Scanner eine weitere Eingabezeile hat Ausnahme
        IllegalStateException- wenn dieser Scanner geschlossen ist
      • nextLine

        public String nextLine()
        Rückt diesen Scanner über die aktuelle Zeile vor und gibt die übersprungene Eingabe zurück. Diese Methode gibt den Rest der aktuellen Zeile zurück, ohne einen Zeilentrenner am Ende. Die Position wird auf den Anfang der nächsten Zeile gesetzt. Da diese Methode die Eingabe weiter nach einem Zeilentrenner durchsucht, puffert sie alle Eingaben für die zu überspringende Zeile, wenn kein Zeilentrenner vorhanden ist.

        Rückgabewert die übersprungene Zeile Ausnahme
        NoSuchElementException- wenn keine Zeile gefunden wurde
        IllegalStateException- wenn dieser Scanner geschlossen ist
      • findInLine

        public String findInLine​(String pattern)
        Versucht, das nächste Muster zu finden, das aus dem angegebenen String konstruiert wird, und ignoriert dabei Trennzeichen. Der Aufruf dieser Methode in der Form

        findInLine(pattern)verhält sich wie der Aufruf vonfindInLine(Pattern.compile(pattern)) 。

        Parameter
        pattern- der String, der das zu durchsuchende Muster angibt Rückgabewert der Text, der dem angegebenen Muster entspricht Ausnahme
        IllegalStateException- wenn dieser Scanner geschlossen ist
      • findInLine

        public String findInLine​(Pattern pattern)
        Versucht, das nächste Vorkommen des angegebenen Musters zu finden und ignoriert dabei Trennzeichen. Wird das Muster vor dem nächsten Zeilentrenner gefunden, überspringt der Scanner die passende Eingabe und gibt den String zurück, der dem Muster entspricht. Wird kein solches Muster in der Eingabe bis zum nächsten Zeilentrenner erkannt, gibt die Methodenullzurück, und die Position des Scanners bleibt unverändert. Diese Methode kann beim Warten auf Eingabe blockieren, die dem Muster entspricht. Da diese Methode die Eingabe weiter nach dem angegebenen Muster durchsucht, puffert sie alle Eingaben für das gesuchte Token, wenn kein Zeilentrenner vorhanden ist.

        Parameter
        pattern- das zu scannende Muster Rückgabewert der Text, der dem angegebenen Muster entspricht Ausnahme
        IllegalStateException- wenn dieser Scanner geschlossen ist
      • findWithinHorizon

        public String findWithinHorizon​(String pattern,
                                        int horizon)
        Versucht, das nächste Muster zu finden, das aus dem angegebenen String konstruiert wird, und ignoriert dabei Trennzeichen. Der Aufruf dieser Methode in der Form

        findWithinHorizon(pattern)verhält sich wie der Aufruf vonfindWithinHorizon(Pattern.compile(pattern), horizon) 。

        Parameter
        pattern- Ein String, der das zu durchsuchende Muster angibt
        horizon- Suchbereich Rückgabe Der Text, der zum angegebenen Muster passt Ausnahme
        IllegalStateException- Wenn dieser Scanner bereits geschlossen ist
        IllegalArgumentException- Wenn der Horizont negativ ist
      • findWithinHorizon

        public String findWithinHorizon​(Pattern pattern,
                                        int horizon)
        Versucht, die nächste Übereinstimmung mit dem angegebenen Muster zu finden. Diese Methode durchsucht die Eingabe bis zum angegebenen Suchbereich und ignoriert dabei Trennzeichen. Wird das Muster gefunden, setzt der Scanner die Eingabe hinter die Übereinstimmung und gibt den passenden String zurück. Wird kein solches Muster erkannt, gibt die Methode null zurück und die Position des Scanners bleibt unverändert. Diese Methode kann blockieren, während sie auf passende Eingabe wartet.

        Der Scanner durchsucht nie mehr Codepunkte,horizonals seiner aktuellen Position entsprechen. Beachten Sie, dass eine Übereinstimmung durch den Horizont begrenzt sein kann. Das heißt, bei einem größeren Horizont kann sich das Ergebnis einer Übereinstimmung ändern. Der Scanner behandelt den Horizont als transparente, nicht verankerte Grenze (sieheMatcher.useTransparentBounds(boolean)undMatcher.useAnchoringBounds(boolean)).

        Wenn der Horizont0ist, wird er ignoriert. Die Methode durchsucht dann die Eingabe unbegrenzt nach dem angegebenen Muster. In diesem Fall kann sie die gesamte Eingabe für die Suche nach dem Muster puffern.

        Wenn der Horizont negativ ist, wird eine IllegalArgumentException ausgelöst.

        Parameter
        pattern- Das zu scannende Muster
        horizon- Suchbereich Rückgabe Der Text, der zum angegebenen Muster passt Ausnahme
        IllegalStateException- Wenn dieser Scanner bereits geschlossen ist
        IllegalArgumentException- Wenn der Horizont negativ ist
      • skip

        public Scanner skip​(Pattern pattern)
        Überspringt Eingabe, die zum angegebenen Muster passt, und ignoriert dabei Trennzeichen. Die Methode überspringt die Eingabe, wenn eine verankerte Übereinstimmung mit dem angegebenen Muster erfolgreich ist. Findet sich an der aktuellen Position keine Übereinstimmung mit dem Muster, wird keine Eingabe übersprungen und eine

        NoSuchElementException 。

        Da diese Methode das Muster ab der aktuellen Position des Scanners abgleicht, kann ein Muster mit vielen möglichen Übereinstimmungen (zum Beispiel „.*") den Scanner viel Eingabe puffern lassen.

        Beachten Sie, dass Sie mit einem Muster, das nie passt (zum Beispielsc.skip("[ \t]*")etwas überspringen, ohne das Risiko einesNoSuchElementExceptioneinzugehen.

        Parameter
        pattern- Ein String, der das zu überspringende Muster angibt Rückgabe Dieser Scanner Ausnahme
        NoSuchElementException- Wenn das angegebene Muster nicht gefunden wird
        IllegalStateException- Wenn dieser Scanner bereits geschlossen ist
      • skip

        public Scanner skip​(String pattern)
        Überspringt Eingabe, die zum aus dem angegebenen String konstruierten Muster passt. Der Aufruf

        skip(pattern)dieser Methode verhält sich wie der Aufrufskip(Pattern.compile(pattern))方式skip(Pattern.compile(pattern)) 。

        Parameter
        pattern- Ein String, der das zu überspringende Muster angibt Rückgabe Dieser Scanner Ausnahme
        IllegalStateException- Wenn dieser Scanner bereits geschlossen ist
      • hasNextBoolean

        public boolean hasNextBoolean()
        Die Methode gibt true zurück, wenn der nächste Token in der Eingabe dieses Scanners als boolescher Wert interpretiert werden kann. Der Scanner überschreitet die passende Eingabe nicht.
        Der Rückgabewert ist true, wenn und nur wenn das nächste Token dieses Scanners ein gültiger boolescher Wert ist. Ausnahme
        IllegalStateException- Wenn dieser Scanner ausgeschaltet ist
      • nextBoolean

        public boolean nextBoolean()
        Scannt das nächste Eingabe-Token als booleschen Wert und gibt diesen zurück. Wenn sich das nächste Token nicht in einen gültigen booleschen Wert umwandeln lässt, wirft diese MethodeInputMismatchException. Bei erfolgreichem Abgleich überspringt der Scanner die abgeglichenen Eingaben.
        Ergebnis Der aus der Eingabe gescannte boolesche Wert Ausnahme
        InputMismatchException- Wenn das nächste Token kein gültiger boolescher Wert ist
        NoSuchElementException- Wenn die Eingabe aufgebraucht ist
        IllegalStateException- Wenn dieser Scanner ausgeschaltet ist
      • hasNextByte

        public boolean hasNextByte()
        Wenn der ScannernextByte()Methode das nächste Token in der Eingabe als Byte-Wert zur Standardbasis interpretiert, gibt sie true zurück. Der Scanner überspringt keine Eingabe.
        Der Rückgabewert ist true, genau dann wenn das nächste Token dieses Scanners ein gültiger Byte-Wert ist. Ausnahme
        IllegalStateException- wenn dieser Scanner bereits geschlossen ist
      • hasNextByte

        public boolean hasNextByte​(int radix)
        Wenn der ScannernextByte()Methode das nächste Token in der Eingabe als Byte-Wert zur angegebenen Basis interpretiert, gibt sie true zurück. Der Scanner überspringt keine Eingabe. Wenn die Basis kleiner als

        Character.MIN_RADIXoder größer alsCharacter.MAX_RADIX ,则抛出IllegalArgumentException 。

        Parameter
        radix- Basis zum Interpretieren des Tokens als Bytewert Ergebnis true, wenn und nur wenn das nächste Token dieses Scanners ein gültiger Bytewert ist Ausnahme
        IllegalStateException- wenn dieser Scanner bereits geschlossen ist
        IllegalArgumentException- wenn die Basis außerhalb des gültigen Bereichs liegt
      • nextByte

        public byte nextByte()
        Scannt das nächste Token der Eingabe alsbyte. Der Aufruf

        nextByte()dieser Methode verhält sich wie der AufrufnextByte(radix) ,其中radixist die Standardeinstellung für diesen Scanner.

        Ergebnis
        byteScannt die Eingabe. Ausnahme
        InputMismatchException- wenn das nächste Token nicht dem Integer-Regular-Expression-Muster entspricht oder außerhalb des Bereichs liegt
        NoSuchElementException- wenn die Eingabe erschöpft ist
        IllegalStateException- wenn dieser Scanner geschlossen ist
      • nextByte

        public byte nextByte​(int radix)
        Scannt das nächste Token der Eingabe alsbyte. Wenn das nächste Token nicht in einen gültigen Byte-Wert konvertiert werden kann, wirft diese Methode eineInputMismatchException, wie unten beschrieben. Bei erfolgreicher Konvertierung überspringt der Scanner die passende Eingabe. Wenn das nächste Token dem oben definierten Integer-Regular-Expression-Muster entspricht, wird das Token konvertiert

        byteDer Wert wird so behandelt, als würden alle gebietsschemaspezifischen Präfixe, Gruppentrennzeichen und gebietsschemaspezifischen Suffixe entfernt. AnschließendCharacter.digitwerden Nicht-ASCII-Ziffern auf ASCII-Ziffern abgebildet. Falls ein gebietsschemaspezifisches negatives Präfix und Suffix vorhanden ist, wird das Minuszeichen ( - ) an die Methode mit der angegebenen Basis übergebenByte.parseByte.

        Wenn die Basis kleinerCharacter.MIN_RADIXoder größerCharacter.MAX_RADIX ,则抛出IllegalArgumentException 。

        Parameter
        radix- die Basis, mit der das Token als Bytewert interpretiert wird Rückgabewert aus der Eingabe gescannt
        byte
        Ausnahmen
        InputMismatchException- wenn das nächste Token nicht dem Ganzzahl-Regex entspricht oder außerhalb des Bereichs liegt
        NoSuchElementException- wenn die Eingabe erschöpft ist
        IllegalStateException- wenn dieser Scanner geschlossen ist
        IllegalArgumentException- wenn die Basis außerhalb des Bereichs liegt
      • hasNextShort

        public boolean hasNextShort()
        Gibt true zurück, wenn das nächste Token in der Eingabe dieses Scanners mit dernextShort()Methode als short-Wert in der Standardbasis interpretiert werden kann. Der Scanner überspringt keine Eingabe.
        Rückgabewert true genau dann, wenn das nächste Token dieses Scanners ein gültiger short-Wert in der Standardbasis ist Ausnahmen
        IllegalStateException- wenn dieser Scanner geschlossen ist
      • hasNextShort

        public boolean hasNextShort​(int radix)
        Gibt true zurück, wenn das nächste Token in der Eingabe dieses Scanners mit dernextShort()Methode als short-Wert in der angegebenen Basis interpretiert werden kann. Der Scanner überspringt keine Eingabe. Wenn die Basis kleiner

        Character.MIN_RADIXoder größerCharacter.MAX_RADIX ,则抛出IllegalArgumentException 。

        Parameter
        radix- die Basis, mit der das Token als short-Wert interpretiert wird Rückgabewert true genau dann, wenn das nächste Token dieses Scanners ein gültiger short-Wert in der angegebenen Basis ist Ausnahmen
        IllegalStateException- wenn dieser Scanner geschlossen ist
        IllegalArgumentException- wenn die Basis außerhalb des Bereichs liegt
      • nextShort

        public short nextShort()
        Scannt das nächste Token der Eingabe alsshort. Der Aufruf dieser Methode in der Form

        nextShort()verhält sich genau wie der AufrufnextShort(radix), wobeiradixdie Standardbasis dieses Scanners ist.

        Rückgabewert aus der Eingabe gescannt
        short
        Ausnahmen
        InputMismatchException- wenn das nächste Token nicht dem Ganzzahl-Regex entspricht oder außerhalb des Bereichs liegt
        NoSuchElementException- wenn die Eingabe erschöpft ist
        IllegalStateException- wenn dieser Scanner geschlossen ist
      • nextShort

        public short nextShort​(int radix)
        Scannt das nächste Token der Eingabe alsshort. Wenn das nächste Token nicht in einen gültigen short-Wert konvertiert werden kann, wirft diese Methode eineInputMismatchException, wie unten beschrieben. Bei erfolgreicher Übersetzung überschreitet der Scanner die passende Eingabe. Wenn das nächste Token dem oben definierten Integer-Regularausdruck entspricht, wird das Token in einen

        short-Wert konvertiert. Dies geschieht, indem alle gebietsschemaspezifischen Präfixe, Gruppentrenner und gebietsschemaspezifischen Suffixe entfernt werden. Danach werden mitCharacter.digitnicht-ASCII-Ziffern auf ASCII-Ziffern abgebildet. Falls ein gebietsschemaspezifisches negatives Präfix und Suffix vorhanden ist, wird das Minuszeichen (-) anShort.parseShortmit der angegebenen Basis übergeben.

        Wenn die Basis kleiner alsCharacter.MIN_RADIXoder größer alsCharacter.MAX_RADIX ,则抛出IllegalArgumentException 。

        Parameter
        radix- die Basis, mit der das Token als short-Wert interpretiert wird Rückgabewert
        shortdas aus der Eingabe gescannte Ergebnis Ausnahmen
        InputMismatchException- wenn das nächste Token nicht dem Integer-Regularausdruck entspricht oder außerhalb des Bereichs liegt
        NoSuchElementException- wenn die Eingabe erschöpft ist
        IllegalStateException- wenn dieser Scanner bereits geschlossen ist
        IllegalArgumentException- wenn die Basis außerhalb des Bereichs liegt
      • hasNextInt

        public boolean hasNextInt()
        Gibt true zurück, wenn das nächste Token in der Eingabe dieses Scanners mit der MethodenextInt()als int-Wert in der Standardbasis interpretiert werden kann. Der Scanner überschreitet keine Eingabe.
        Rückgabewert Gibt true zurück, genau dann wenn das nächste Token dieses Scanners ein gültiger int-Wert ist Ausnahmen
        IllegalStateException- wenn dieser Scanner bereits geschlossen ist
      • hasNextInt

        public boolean hasNextInt​(int radix)
        Gibt true zurück, wenn das nächste Token in der Eingabe dieses Scanners mit der MethodenextInt()als int-Wert in der angegebenen Basis interpretiert werden kann. Der Scanner überschreitet keine Eingabe. Wenn die Basis kleiner als

        Character.MIN_RADIXoder größer alsCharacter.MAX_RADIX ,则抛出IllegalArgumentException 。

        Parameter
        radix- die Basis, mit der das Token als int-Wert interpretiert wird Rückgabewert Gibt true zurück, genau dann wenn das nächste Token dieses Scanners ein gültiger int-Wert ist Ausnahmen
        IllegalStateException- wenn dieser Scanner bereits geschlossen ist
        IllegalArgumentException- wenn die Basis außerhalb des Bereichs liegt
      • nextInt

        public int nextInt()
        Scannt das nächste Token der Eingabe alsint. Der Aufruf dieser Methode in der Form

        nextInt()verhält sich wie der Aufruf vonnextInt(radix) ,其中radixdie Standardbasis dieses Scanners ist.

        Rückgabewert
        intScannt die Eingabe nach einer Ausnahme
        InputMismatchException- Wenn das nächste Token nicht mit dem Integer-Regularausdruck übereinstimmt oder außerhalb des Bereichs liegt
        NoSuchElementException- Wenn die Eingabe erschöpft ist
        IllegalStateException- Wenn dieser Scanner geschlossen ist
      • nextInt

        public int nextInt​(int radix)
        Scannt das nächste Token der Eingabe alsint. Wenn das nächste Token nicht in einen gültigen int-Wert konvertiert werden kann, wirft diese MethodeInputMismatchExceptionwie unten beschrieben. Bei erfolgreicher Übersetzung überschreitet der Scanner die passende Eingabe. Wenn das nächste Token mit dem oben definierten Integer-Regularausdruck übereinstimmt, wird das Token in einen

        intWert konvertiert, indem alle gebietsschemaspezifischen Präfixe, Gruppentrenner und gebietsschemaspezifischen Suffixe entfernt werden. Danach werden mitCharacter.digitnicht-ASCII-Ziffern auf ASCII-Ziffern abgebildet. Falls ein gebietsschemaspezifisches negatives Präfix und Suffix vorhanden sind, wird ein Minuszeichen ( - ) vorangestellt. Der Ergebnisstring wird mit der angegebenen Basis anInteger.parseIntübergeben.

        Wenn die Basis kleiner alsCharacter.MIN_RADIXoder größer alsCharacter.MAX_RADIX ,则抛出IllegalArgumentException 。

        Parameter
        radix- Die Basis, mit der das Token als int-Wert interpretiert wird Rückgabewert
        intScannt die Eingabe nach einer Ausnahme
        InputMismatchException- Wenn das nächste Token nicht mit dem Integer-Regularausdruck übereinstimmt oder außerhalb des Bereichs liegt
        NoSuchElementException- Wenn die Eingabe erschöpft ist
        IllegalStateException- Wenn dieser Scanner geschlossen ist
        IllegalArgumentException- Wenn die Basis außerhalb des Bereichs liegt
      • hasNextLong

        public boolean hasNextLong()
        Gibt true zurück, wenn das nächste Token in der Eingabe dieses Scanners mit dernextLong()Methode als long-Wert in der Standardbasis interpretiert werden kann. Der Scanner überschreitet keine Eingabe.
        Rückgabewert true, wenn und nur wenn das nächste Token dieses Scanners ein gültiger long-Wert ist Ausnahme
        IllegalStateException- Wenn dieser Scanner geschlossen ist
      • hasNextLong

        public boolean hasNextLong​(int radix)
        Gibt true zurück, wenn das nächste Token in der Eingabe dieses Scanners mit dernextLong()Methode als long-Wert in der angegebenen Basis interpretiert werden kann. Der Scanner überschreitet keine Eingabe. Wenn die Basis kleiner als

        Character.MIN_RADIXoder größer alsCharacter.MAX_RADIX ,则抛出IllegalArgumentException 。

        Parameter
        radix- Die Basis, mit der das Token als long-Wert interpretiert wird Rückgabewert true, wenn und nur wenn das nächste Token dieses Scanners ein gültiger long-Wert ist Ausnahme
        IllegalStateException- Wenn dieser Scanner geschlossen ist
        IllegalArgumentException- Wenn die Basis außerhalb des Bereichs liegt
      • nextLong

        public long nextLong()
        Scannt das nächste Token der Eingabe alslong. Aufruf

        nextLong()Das Verhalten dieser Methode in dieser Form entspricht dem Aufruf vonnextLong(radix) ,其中radixder Standardradix dieses Scanners ist.

        Rückgabewert
        longLiest aus der Eingabe. Ausnahme
        InputMismatchException- wenn das nächste Token nicht mit dem Integer-Regularausdruck übereinstimmt oder außerhalb des Bereichs liegt
        NoSuchElementException- wenn die Eingabe erschöpft ist
        IllegalStateException- wenn dieser Scanner geschlossen ist
      • nextLong

        public long nextLong​(int radix)
        Liest das nächste Token der Eingabe alslong. Wenn das nächste Token nicht in einen gültigen long-Wert umgewandelt werden kann, wirft diese MethodeInputMismatchException, wie unten beschrieben. Bei erfolgreicher Umwandlung überspringt der Scanner die passende Eingabe. Wenn das nächste Token mit dem oben definierten Integer-Regularausdruck übereinstimmt, wird das Token in einen

        long-Wert umgewandelt, indem alle gebietsschemaspezifischen Präfixe, Gruppentrennzeichen und gebietsschemaspezifischen Suffixe entfernt werden. Danach werdenCharacter.digitnicht-ASCII-Ziffern in ASCII-Ziffern umgewandelt. Falls ein gebietsschemaspezifisches negatives Präfix und Suffix vorhanden sind, wird ein Minuszeichen ( - ) vorangestellt. Die Ergebniszeichenfolge wird anLong.parseLongmit dem angegebenen Radix übergeben.

        Wenn der Radix kleiner alsCharacter.MIN_RADIXoder größer alsCharacter.MAX_RADIX ,则抛出IllegalArgumentException 。

        Parameter
        radix- der Radix, mit dem das Token als int-Wert interpretiert wird. Rückgabewert Liest aus der Eingabe
        long
        Ausnahme
        InputMismatchException- wenn das nächste Token nicht mit dem Integer-Regularausdruck übereinstimmt oder außerhalb des Bereichs liegt
        NoSuchElementException- wenn die Eingabe erschöpft ist
        IllegalStateException- wenn dieser Scanner geschlossen ist
        IllegalArgumentException- wenn der Radix außerhalb des Bereichs liegt
      • hasNextFloat

        public boolean hasNextFloat()
        Gibt true zurück, wenn das nächste Token in der Eingabe dieses Scanners mit dernextFloat()Methode als Gleitkommawert interpretiert werden kann. Der Scanner überspringt keine Eingabe.
        Rückgabewert Gibt true zurück, wenn und nur wenn das nächste Token dieses Scanners ein gültiger Gleitkommawert ist. Ausnahme
        IllegalStateException- wenn dieser Scanner geschlossen ist
      • nextFloat

        public float nextFloat()
        Liest das nächste Token der Eingabe alsfloat. Wenn das nächste Token nicht in einen gültigen Gleitkommawert umgewandelt werden kann, wirft diese MethodeInputMismatchException, wie unten beschrieben. Bei erfolgreicher Umwandlung überspringt der Scanner die passende Eingabe. Wenn das nächste Token mit dem oben definierten Float-Regularausdruck übereinstimmt, wird das Token in einen

        float-Wert umgewandelt, indem alle gebietsschemaspezifischen Präfixe, Gruppentrennzeichen und gebietsschemaspezifischen Suffixe entfernt werden. Danach werdenCharacter.digitnicht-ASCII-Ziffern in ASCII-Ziffern umgewandelt. Falls ein gebietsschemaspezifisches negatives Präfix und Suffix vorhanden sind, wird ein Minuszeichen ( - ) vorangestellt. Die Ergebniszeichenfolge wird anFloat.parseFloatübergeben. Wenn das Token mit einer lokalisierten NaN- oder Infinity-Zeichenfolge übereinstimmt, wird "Nan" oder "Infinity" nach Bedarf anFloat.parseFloatübergeben.

        Rückgabewert Liest aus der Eingabe
        float
        Ausnahme
        InputMismatchException- Wenn das nächste Token nicht mit dem Float-Regular-Ausdruck übereinstimmt oder außerhalb des Bereichs liegt
        NoSuchElementException- Wenn die Eingabe erschöpft ist
        IllegalStateException- Wenn dieser Scanner geschlossen ist
      • hasNextDouble

        public boolean hasNextDouble()
        Wenn mit der MethodenextDouble()das nächste Token dieser Scannereingabe als double-Wert interpretiert wird, gibt die Methode true zurück. Der Scanner überspringt keine Eingabe.
        Rückgabewert true, wenn und nur wenn das nächste Token dieses Scanners ein gültiger double-Wert ist. Ausnahme
        IllegalStateException- Wenn dieser Scanner geschlossen ist
      • nextDouble

        public double nextDouble()
        Scannt das nächste Eingabe-Token alsdouble. Wenn das nächste Token nicht in einen gültigen double-Wert konvertiert werden kann, wirft diese Methode eineInputMismatchException. Bei erfolgreicher Übersetzung überschreitet der Scanner die passende Eingabe. Wenn das nächste Token dem oben definierten Float-Regulären Ausdruck entspricht, wird das Token in einen

        double- Wert konvertiert, indem alle gebietsschemaspezifischen Präfixe, Gruppentrenner und gebietsschemaspezifischen Suffixe entfernt werden. Danach werden nicht-ASCII-Ziffern durchCharacter.digitin ASCII-Ziffern umgewandelt. Wenn ein gebietsschemaspezifisches negatives Präfix und Suffix vorhanden sind, wird das Minuszeichen ( - ) vorangestellt und anDouble.parseDoubleübergeben. Wenn das Token mit dem lokalisierten NaN- oder Infinity-String übereinstimmt, wird "Nan" oder "Infinity" je nach Bedarf anDouble.parseDoubleübergeben.

        Rückgabewert die aus der Eingabe gescannten
        double
        Ausnahmen
        InputMismatchException- wenn das nächste Token nicht dem Float-Regulären Ausdruck entspricht oder außerhalb des Bereichs liegt
        NoSuchElementException- Wenn die Eingabe aufgebraucht ist
        IllegalStateException- Wenn dieser Scanner bereits geschlossen ist
      • hasNextBigInteger

        public boolean hasNextBigInteger()
        Wenn mit der MethodenextBigInteger()das nächste Token in der Eingabe dieses Scanners alsBigIntegerin der Standardbasis interpretiert werden kann, gibt die Methode true zurück. Der Scanner überspringt keine Eingabe.
        Das Ergebnis ist true, genau dann wenn das nächste Token dieses Scanners ein gültiges
        BigInteger
        Ausnahmen
        IllegalStateException- Wenn dieser Scanner bereits geschlossen ist
      • hasNextBigInteger

        public boolean hasNextBigInteger​(int radix)
        Gibt true zurück, wenn das nächste Token in der Eingabe dieses ScannersnextBigInteger()Die Methode interpretiert den Wert in der angegebenen Basis.BigIntegermit der Methode in der angegebenen Basis interpretiert werden kann. Der Scanner überspringt keine Eingabe. Wenn die Basis kleiner als

        Character.MIN_RADIXoder größer alsCharacter.MAX_RADIX ,则抛出IllegalArgumentException 。

        ausgelöst.
        radixParameter
        BigInteger
        - die Basis, mit der das Token als Ganzzahl interpretiert wird. Rückgabewert: true genau dann, wenn das nächste Token dieses Scanners ein gültiges
        IllegalStateExceptionAusnahmen
        IllegalArgumentException- wenn die Basis außerhalb des Bereichs liegt
      • nextBigInteger

        public BigInteger nextBigInteger()
        Scannt das nächste Token der Eingabe alsBigInteger. Der Aufruf

        nextBigInteger()dieser Methode verhält sich wie der AufrufnextBigInteger(radix) ,其中radixdie Standardbasis dieses Scanners ist.

        Rückgabewert
        BigIntegerScannt aus der Eingabe. Ausnahme
        InputMismatchException- wenn das nächste Token nicht dem Integer-Regex entspricht oder außerhalb des Bereichs liegt
        NoSuchElementException- wenn die Eingabe erschöpft ist
        IllegalStateException- wenn dieser Scanner geschlossen ist
      • nextBigInteger

        public BigInteger nextBigInteger​(int radix)
        Scannt das nächste Token der Eingabe alsBigInteger. Wenn das nächste Token dem oben definierten Integer-Regex entspricht, wird das Token in einen

        BigIntegerWert umgewandelt, als ob alle Gruppentrenner entfernt, nicht-ASCII-Ziffern durchCharacter.digitin ASCII-Ziffern umgewandelt und die resultierende Zeichenfolge an denBigInteger(String, int)Konstruktor mit der angegebenen Basis übergeben würde.

        Wenn die Basis kleiner alsCharacter.MIN_RADIXoder größer alsCharacter.MAX_RADIX ,则抛出IllegalArgumentException 。

        Parameter
        radix- die Basis zur Interpretation des Tokens. Rückgabewert: Aus der Eingabe gescannt
        BigInteger
        Ausnahme
        InputMismatchException- wenn das nächste Token nicht dem Integer-Regex entspricht oder außerhalb des Bereichs liegt
        NoSuchElementException- wenn die Eingabe erschöpft ist
        IllegalStateException- wenn dieser Scanner geschlossen ist
        IllegalArgumentException- wenn die Basis außerhalb des Bereichs liegt
      • hasNextBigDecimal

        public boolean hasNextBigDecimal()
        Gibt true zurück, wenn das nächste Token in der Eingabe dieses Scanners mit dernextBigDecimal()Methode alsBigDecimalinterpretiert werden kann. Der Scanner überschreitet keine Eingabe.
        Rückgabewert: true genau dann, wenn das nächste Token dieses Scanners ein gültiger
        BigDecimal
        Ausnahme
        IllegalStateException- wenn dieser Scanner geschlossen ist
      • nextBigDecimal

        public BigDecimal nextBigDecimal()
        Scannt das nächste Token der Eingabe alsBigDecimal. Wenn das nächste Token dem oben definierten Decimal-Regex entspricht, wird das Token in einen

        BigDecimalWert umgewandelt, als ob alle Gruppentrenner entfernt, durchCharacter.digitOrdnet Nicht-ASCII-Ziffern ASCII-Ziffern zu und übergibt den Ergebnis-String an denBigDecimal(String)Konstruktor.

        结果
        从输入扫描 BigDecimal
        Ausnahmen
        InputMismatchException- wenn das nächste Token nicht mit dem regulären Ausdruck für Dezimalzahlen übereinstimmt oder außerhalb des Bereichs liegt
        NoSuchElementException- wenn die Eingabe erschöpft ist
        IllegalStateException- wenn dieser Scanner bereits geschlossen ist
      • reset

        public Scanner reset()
        Setzt diesen Scanner zurück. Das Zurücksetzen verwirft alle expliziten Zustandsinformationen, die durch Aufrufe von

        useDelimiter(),useLocale()oderuseRadix()geändert wurden.

        Der Aufruf dieser Methode in der Formscanner.reset()verhält sich genau wie der Aufruf von

        
           scanner.useDelimiter("\\p{javaWhitespace}+")
                  .useLocale(Locale.getDefault(Locale.Category.FORMAT))
                  .useRadix(10);
         
        Rückgabewert dieser Scanner Seit: 1.6
      • tokens

        public Stream<String> tokens()
        Gibt einen Strom von durch Trennzeichen getrennten Tokens dieses Scanners zurück. Der Strom enthält dieselben Tokens, die ab dem aktuellen Zustand dieses Scanners zurückgegeben werden, wenn die Methodenext()wiederholt aufgerufen wird, bis die MethodehasNext()false zurückgibt. Der erzeugte Strom ist sequenziell und geordnet. Alle Stromelemente sind nicht null.

        Das Scannen beginnt mit dem aktuellen Zustand des Scanners beim Start einer terminalen Stromoperation. Nachfolgende Aufrufe beliebiger Methoden dieses Scanners außerclose()undioException()können undefinierte Ergebnisse liefern oder unbestimmte Auswirkungen auf den zurückgegebenen Strom haben. Die Quelle des zurückgegebenen StromsSpliteratorist fail-fast und wirft nach bestem Bemühen eineConcurrentModificationExceptionwenn während der Ausführung der Strompipeline ein solcher Aufruf erkannt wird.

        Nach Abschluss der Strompipeline befindet sich dieser Scanner in einem unbestimmten Zustand und ist nicht wiederverwendbar.

        Wenn dieser Scanner Ressourcen enthält, die freigegeben werden müssen, muss er durch Aufruf seiner Methodeclose()oder durch Schließen des zurückgegebenen Stroms geschlossen werden. Das Schließen des Stroms schließt den zugrunde liegenden Scanner. Wenn der Scanner beim Aufruf dieser Methode bereits geschlossen ist oder während der Ausführung der Strompipeline geschlossen wird, wird eineIllegalStateException 。

        Diese Methode blockiert möglicherweise beim Warten auf weitere Eingaben.

        API-Hinweis: Der folgende Code erzeugt beispielsweise aus einem String eine Liste von durch Kommas getrennten Tokens:
           List<String> result = new Scanner("abc,def,,ghi") .useDelimiter(",") .tokens() .collect(Collectors.toList());  

        Die Ergebnisliste enthält"abc" , "def" den leeren String und"ghi" 。

        Rückgabewert ein sequenzieller Strom von Token-Strings Ausnahmen
        IllegalStateException- wenn dieser Scanner bereits geschlossen ist Seit: 9
      • findAll

        public Stream<MatchResult> findAll​(Pattern pattern)
        Gibt einen Strom von Übereinstimmungsergebnissen dieses Scanners zurück. Der Strom enthält dieselben Ergebnisse in derselben Reihenfolge, solangefindWithinHorizon()Übereinstimmungen findet, durch Aufruf vonfindWithinHorizon(pattern, 0)undmatch()Gibt zurück. Der erzeugte Stream ist sequenziell und geordnet. Alle Stream-Elemente sind nicht null.

        Der Scan beginnt mit dem aktuellen Zustand dieses Scanners beim Start der terminalen Stream-Operation. Nachfolgende Aufrufeclose()vonioException()undSpliteratorjeder anderen Methode dieses Scanners liefern möglicherweise undefinierte Ergebnisse oder beeinflussen den zurückgegebenen Stream undefiniert. Die Quelle des zurückgegebenen Streams ist fail-fast und wirft nach bestem BemühenConcurrentModificationExceptioneine Ausnahme, wenn ein solcher Aufruf während der Ausführung der Stream-Pipeline erkannt wird.

        Nach Abschluss der Stream-Pipeline befindet sich dieser Scanner in einem unbestimmten Zustand und ist nicht wiederverwendbar.

        Wenn dieser Scanner Ressourcen enthält, die freigegeben werden müssen, schließen Sie ihn durch Aufruf seinerclose()Methode oder durch Schließen des zurückgegebenen Streams. Das Schließen des Streams schließt den zugrunde liegenden Scanner. Wenn der Scanner beim Aufruf dieser Methode bereits geschlossen ist oder während der Ausführung der Stream-Pipeline geschlossen wird, wirdIllegalStateException 。

        Wie bei der MethodefindWithinHorizon()kann diese Methode auf weitere Eingaben warten und eine unbegrenzte Menge an Eingaben für die Suche nach Übereinstimmungen puffern.

        API-Hinweis: Der folgende Code liest beispielsweise eine Datei und gibt eine Liste aller Zeichenfolgen zurück, die aus sieben oder mehr lateinischen Großbuchstaben bestehen:
           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()); }  
        Parameter
        pattern- das zu matchende Muster Rückgabewert ein Stream aufeinanderfolgender Übereinstimmungsergebnisse Ausnahme
        NullPointerException- wenn pattern null ist
        IllegalStateException- wenn dieser Scanner geschlossen ist Seit Version: 9
      • findAll

        public Stream<MatchResult> findAll​(String patString)
        Gibt einen Stream von Übereinstimmungsergebnissen zurück, die mit der angegebenen Musterzeichenfolge übereinstimmen. Der Effekt entspricht dem folgenden Code:
           scanner.findAll(Pattern.compile(patString))  
        Parameter
        patString- die Musterzeichenfolge Rückgabewert ein Stream aufeinanderfolgender Übereinstimmungsergebnisse Ausnahme
        NullPointerException- wenn patString null ist
        IllegalStateException- wenn dieser Scanner geschlossen ist
        PatternSyntaxException- wenn die Syntax des regulären Ausdrucks ungültig ist Seit Version: 9 Siehe auch:
        Pattern