Die "Scanner" -Klasse in Java akzeptiert mehrere Parameter in seinen Konstruktoren und beeinflusst, wie die Eingaben gelesen werden. Die häufigsten Konstruktoren sind:
* `Scanner (InputStream Quelle)`: Dies ist der allgemeinste Konstruktor. Es dauert ein "InputStream" als Argument, das einen Strom von Bytes darstellt. Auf diese Weise können Sie aus verschiedenen Quellen lesen:
* `System.in`:liest aus der Standardeingabe (typischerweise der Tastatur). Dies ist die häufigste Verwendung.
* `New FileInputStream (" myFile.txt ")`:liest aus einer Datei. Sie benötigen eine angemessene Fehlerbehandlung (z. B. "Try-Catch`-Blöcke), um potenzielle" FilenotFoundException "zu verwalten.
* `New BytearrayInputStream (Bytearray)`:liest aus einem Byte -Array. Nützlich zum Testen oder Verarbeiten von Daten im Speicher.
* `Scanner (lesbare Quelle)`: Dieser Konstruktor ähnelt dem Konstruktor "InputStream", verwendet jedoch die "lesbare" Schnittstelle. "Lesbar" ist eine allgemeinere Schnittstelle als "InputStream", das einen breiteren Bereich von Eingangsquellen umfasst. `Reader` classes (wie` fileReader`, `StringReader` usw.) implementieren` lesable`.
* `Scanner (Dateiquelle)`: Ein Convenience -Konstruktor, der direkt ein `File` -Objekt als Eingabe nimmt. Innen erstellt dies einen `FileInputStream`. Erfordert Fehlerbehandlung für "FilenotFoundException".
* `Scanner (String Quelle)`: Dadurch wird ein Scanner erstellt, der aus einer bestimmten Zeichenfolge liest. Nützlich zum Testen oder Verarbeiten von Zeichenfolgendaten ohne externe Dateien.
Keine anderen Parameter werden direkt an den Scannerkonstruktor übergeben. Sie können jedoch beeinflussen *, wie * der Scanner mit seinen Methoden funktioniert:
* `useLimiter (...)`: Ändert den Trennzeichen, mit dem Token (Wörter oder Zahlen) getrennt wird. Standardmäßig verwendet es Whitespace. Sie können einen regulären Ausdruck als Trennzeichen angeben.
* `uselocale (...)`: Legt das Gebietsschema fest, das sich auf die Zahlenformatierung und die Charakterkategorisierung auswirkt.
* `Nextline ()`, `NextInt ()`, `NextDouble ()` usw.: Diese Methoden sind keine Konstruktorparameter, aber sie steuern *, wie * der Scanner Daten aus der Eingabequelle liest.
Zusammenfassend lässt sich sagen, dass der Konstruktor nur ein Argument (ein "InputStream", "lesbar", "Datei" oder "String") nimmt, das Verhalten des Scanners nach der Erstellung weiter angepasst wird. Denken Sie daran, die richtige Ausnahmebehandlung, insbesondere beim Umgang mit Dateieingaben.