Klassen "Scanner" i Java accepterar flera parametrar i sina konstruktörer och påverkar hur den läser inmatning. De vanligaste konstruktörerna är:
* `skanner (inputStream Source)`: Detta är den mest allmänna konstruktören. Det tar en "inputStream" som ett argument, som representerar en ström av byte. Detta gör att du kan läsa från olika källor:
* `System.in`:läser från standardingången (vanligtvis tangentbordet). Detta är den vanligaste användningen.
* `new FileInputStream (" myFile.txt ")`:läser från en fil. Du behöver lämplig felhantering (t.ex. "Try-catch" -block) för att hantera potentiella "filenotfoundexception".
* `Ny ByteArrayInputStream (ByteArray)`:läser från en byte -array. Användbart för att testa eller bearbeta data i minnet.
* `skanner (läsbar källa)`: Denna konstruktör liknar konstruktören "InputStream" men använder gränssnittet "Readerable". "Readerable" är ett mer allmänt gränssnitt än "inputStream", som omfattar ett bredare utbud av inmatningskällor. "Reader` -klasser (som" fileReader "," StringReader ", etc.) Implementera" Readerable ".
* `skanner (filkälla)`: En bekvämlighetskonstruktör som direkt tar ett "fil" -objekt som input. Internt skapar detta en "FileInputStream". Kräver felhantering för `FileNotFoundException '.
* `skanner (strängkälla)`: Detta skapar en skanner som läser från en given sträng. Användbart för att testa eller bearbeta strängdata utan externa filer.
Inga andra parametrar överförs direkt till skannerkonstruktören. Du kan dock påverka * hur * skannern fungerar genom dess metoder:
* `begreppselimiter (...)`: Ändrar avgränsaren som används för att separera tokens (ord eller siffror). Som standard använder den Whitespace. Du kan ange ett regelbundet uttryck som avgränsaren.
* `uselocale (...)`: Ställer in landskapet, som påverkar antalet formatering och teckenkategorisering.
* `nextline ()`, `nextInt ()`, `nextDouble ()` etc.: Dessa metoder är inte konstruktionsparametrar, men de styr * hur * skannern läser data från ingångskällan.
Sammanfattningsvis, medan konstruktören bara tar ett argument (en "inputStream", "läsbar", "fil" eller "sträng"), anpassas skannerns beteende ytterligare efter dess metoder efter skapandet. Kom ihåg korrekt undantagshantering, särskilt när du hanterar filinmatning.