Trieda skenera v jazyku Java sa nachádza v balíku java.util. Java poskytuje rôzne spôsoby čítania vstupu z klávesnice, trieda java.util.Scanner je jedným z nich.
Trieda Java Scanner rozdeľuje vstup na tokeny pomocou oddeľovača, ktorý je predvolene prázdny. Poskytuje mnoho metód na čítanie a analýzu rôznych primitívnych hodnôt.
Trieda Java Scanner sa široko používa na analýzu textu na reťazce a primitívne typy pomocou regulárneho výrazu. Je to najjednoduchší spôsob, ako získať vstup v Jave. Pomocou Scannera v Jave môžeme získať vstup od používateľa v primitívnych typoch, ako sú int, long, double, byte, float, short atď.
Trieda Java Scanner rozširuje triedu Object a implementuje rozhrania Iterator a Closeable.
Trieda Java Scanner poskytuje metódy nextXXX() na vrátenie typu hodnoty, ako napríklad nextInt(), nextByte(), nextShort(), next(), nextLine(), nextDouble(), nextFloat(), nextBoolean() atď. Ak chcete získať jeden znak zo skenera, môžete zavolať metódu next().charAt(0), ktorá vráti jeden znak.
Vyhlásenie o triede skenera Java
public final class Scanner extends Object implements Iterator
Ako získať Java Scanner
Aby sme získali inštanciu Java Scanner, ktorá číta vstup od používateľa, musíme odovzdať vstupný tok (System.in) do konštruktora triedy Scanner. Napríklad:
Scanner in = new Scanner(System.in);
Aby sme získali inštanciu Java Scanner, ktorá analyzuje reťazce, musíme reťazce odovzdať v konštruktore triedy Scanner. Napríklad:
Scanner in = new Scanner('Hello Javatpoint');
Konštruktory triedy Java Scanner
SN | Konštruktér | Popis |
---|---|---|
1) | Skener (zdroj súboru) | Vytvorí nový skener, ktorý vytvorí hodnoty naskenované zo zadaného súboru. |
2) | Skener (zdroj súboru, reťazec charsetName) | Vytvorí nový skener, ktorý vytvorí hodnoty naskenované zo zadaného súboru. |
3) | Skener (zdroj InputStream) | Vytvára nový skener, ktorý vytvára hodnoty naskenované zo špecifikovaného vstupného toku. |
4) | Skener (zdroj InputStream, reťazec charsetName) | Vytvára nový skener, ktorý vytvára hodnoty naskenované zo špecifikovaného vstupného toku. |
5) | Skener (čitateľný zdroj) | Vytvára nový skener, ktorý vytvára hodnoty naskenované zo špecifikovaného zdroja. |
6) | Skener (zdroj reťazca) | Vytvára nový skener, ktorý vytvára hodnoty naskenované zo zadaného reťazca. |
7) | Skener (zdroj ReadableByteChannel) | Vytvára nový skener, ktorý vytvára hodnoty naskenované zo zadaného kanála. |
8) | Scanner (zdroj ReadableByteChannel, String charsetName) | Vytvára nový skener, ktorý vytvára hodnoty naskenované zo zadaného kanála. |
9) | Skener (zdroj cesty) | Vytvorí nový skener, ktorý vytvorí hodnoty naskenované zo zadaného súboru. |
10) | Scanner (zdroj cesty, reťazec charsetName) | Vytvorí nový skener, ktorý vytvorí hodnoty naskenované zo zadaného súboru. |
Metódy triedy Java Scanner
Nasleduje zoznam metód skenera:
SN | Modifikátor a typ | Metóda | Popis |
---|---|---|---|
1) | neplatné | Zavrieť() | Používa sa na zatvorenie tohto skenera. |
2) | vzor | oddeľovač() | Používa sa na získanie vzoru, ktorý trieda Scanner momentálne používa na priraďovanie oddeľovačov. |
3) | Prúd | findAll() | Používa sa na nájdenie prúdu výsledkov zhody, ktoré zodpovedajú zadanému reťazcu vzoru. |
4) | Reťazec | findInLine() | Používa sa na nájdenie ďalšieho výskytu vzoru vytvoreného zo zadaného reťazca, pričom sa ignorujú oddeľovače. |
5) | reťazec | findWithinHorizon() | Používa sa na nájdenie ďalšieho výskytu vzoru vytvoreného zo zadaného reťazca, pričom sa ignorujú oddeľovače. |
6) | boolovská hodnota | hasNext() | Vráti hodnotu true, ak má tento skener na svojom vstupe iný token. |
7) | boolovská hodnota | hasNextBigDecimal() | Používa sa na kontrolu, či nasledujúci token vo vstupe tohto skenera možno interpretovať ako BigDecimal pomocou metódy nextBigDecimal() alebo nie. |
8) | boolovská hodnota | hasNextBigInteger() | Používa sa na kontrolu, či nasledujúci token vo vstupe tohto skenera možno interpretovať ako BigDecimal pomocou metódy nextBigDecimal() alebo nie. |
9) | boolovská hodnota | hasNextBoolean() | Používa sa na kontrolu, či nasledujúci token vo vstupe tohto skenera možno interpretovať ako booleovský pomocou metódy nextBoolean() alebo nie. |
10) | boolovská hodnota | hasNextByte() | Používa sa na kontrolu, či nasledujúci token vo vstupe tohto skenera možno interpretovať ako bajt pomocou metódy nextBigDecimal() alebo nie. |
jedenásť) | boolovská hodnota | hasNextDouble() | Používa sa na kontrolu, či nasledujúci token vo vstupe tohto skenera možno interpretovať ako BigDecimal pomocou metódy nextByte() alebo nie. |
12) | boolovská hodnota | hasNextFloat() | Používa sa na kontrolu, či ďalší token vo vstupe tohto skenera môže byť interpretovaný ako Float pomocou metódy nextFloat() alebo nie. |
13) | boolovská hodnota | hasNextInt() | Používa sa na kontrolu, či nasledujúci token vo vstupe tohto skenera možno interpretovať ako int pomocou metódy nextInt() alebo nie. |
14) | boolovská hodnota | hasNextLine() | Používa sa na kontrolu, či je na vstupe tohto skenera ďalší riadok alebo nie. |
pätnásť) | boolovská hodnota | hasNextLong() | Používa sa na kontrolu, či nasledujúci token vo vstupe tohto skenera možno interpretovať ako Long pomocou metódy nextLong() alebo nie. |
16) | boolovská hodnota | hasNextShort() | Používa sa na kontrolu, či nasledujúci token vo vstupe tohto skenera môže byť interpretovaný ako Short pomocou metódy nextShort() alebo nie. |
17) | IOException | ioException() | Používa sa na to, aby sa IOException naposledy zobrazila v tomto skeneri. |
18) | Miestne | miestne() | Používa sa na získanie Locale triedy Scanner. |
19) | Výsledok zápasu | zápas() | Používa sa na získanie výsledku zhody poslednej skenovacej operácie vykonanej týmto skenerom. |
dvadsať) | Reťazec | Ďalšie() | Používa sa na získanie ďalšieho úplného tokenu zo skenera, ktorý sa používa. |
dvadsaťjeden) | BigDecimal | nextBigDecimal() | Naskenuje nasledujúci token vstupu ako BigDecimal. |
22) | BigInteger | nextBigInteger() | Naskenuje nasledujúci token vstupu ako BigInteger. |
23) | boolovská hodnota | nextBoolean() | Naskenuje nasledujúci token vstupu na boolovskú hodnotu a vráti túto hodnotu. |
24) | byte | nextByte() | Skenuje nasledujúci token vstupu ako bajt. |
25) | dvojitý | nextDouble() | Naskenuje nasledujúci token vstupu ako dvojitý. |
26) | plavák | nextFloat() | Skenuje nasledujúci token vstupu ako pohyblivý znak. |
27) | int | nextInt() | Skenuje ďalší token vstupu ako Int. |
28) | Reťazec | dalsiriadok() | Používa sa na získanie vstupného reťazca, ktorý bol preskočený z objektu Scanner. |
29) | dlhý | nextLong() | Skenuje nasledujúci token vstupu ako dlhý. |
30) | krátky | nextShort() | Skenuje nasledujúci token vstupu ako skrat. |
31) | int | radix() | Používa sa na získanie predvoleného základu použitia skenera. |
32) | neplatné | odstrániť () | Používa sa, keď operácia odstránenia nie je podporovaná touto implementáciou Iterátora. |
33) | Skener | reset() | Používa sa na resetovanie skenera, ktorý sa používa. |
3. 4) | Skener | preskočiť () | Preskočí vstup, ktorý zodpovedá zadanému vzoru, pričom ignoruje oddeľovače |
35) | Prúd | tokeny() | Používa sa na získanie prúdu tokenov oddelených oddeľovačmi z objektu Scanner, ktorý sa používa. |
36) | Reťazec | natiahnuť() | Používa sa na získanie reťazcovej reprezentácie pomocou skenera. |
37) | Skener | useDelimiter() | Používa sa na nastavenie vymedzovacieho vzoru skenera, ktorý sa používa, na zadaný vzor. |
38) | Skener | useLocale() | Používa sa na nastavenie objektu miestneho nastavenia tohto skenera na zadané miestne nastavenie. |
39) | Skener | useRadix() | Používa sa na nastavenie predvoleného radixu skenera, ktorý sa používa, na zadaný radix. |
Príklad 1
Pozrime sa na jednoduchý príklad Java Scanner, kde dostávame jeden vstup od používateľa. Tu požadujeme reťazec pomocou metódy in.nextLine().
import java.util.*; public class ScannerExample { public static void main(String args[]){ Scanner in = new Scanner(System.in); System.out.print('Enter your name: '); String name = in.nextLine(); System.out.println('Name is: ' + name); in.close(); } }
Výkon:
Enter your name: sonoo jaiswal Name is: sonoo jaiswal
Príklad 2
import java.util.*; public class ScannerClassExample1 { public static void main(String args[]){ String s = 'Hello, This is JavaTpoint.'; //Create scanner Object and pass string in it Scanner scan = new Scanner(s); //Check if the scanner has a token System.out.println('Boolean Result: ' + scan.hasNext()); //Print the string System.out.println('String: ' +scan.nextLine()); scan.close(); System.out.println('--------Enter Your Details-------- '); Scanner in = new Scanner(System.in); System.out.print('Enter your name: '); String name = in.next(); System.out.println('Name: ' + name); System.out.print('Enter your age: '); int i = in.nextInt(); System.out.println('Age: ' + i); System.out.print('Enter your salary: '); double d = in.nextDouble(); System.out.println('Salary: ' + d); in.close(); } }
Výkon:
Boolean Result: true String: Hello, This is JavaTpoint. -------Enter Your Details--------- Enter your name: Abhishek Name: Abhishek Enter your age: 23 Age: 23 Enter your salary: 25000 Salary: 25000.0
Príklad 3
import java.util.*; public class ScannerClassExample2 { public static void main(String args[]){ String str = 'Hello/This is JavaTpoint/My name is Abhishek.'; //Create scanner with the specified String Object Scanner scanner = new Scanner(str); System.out.println('Boolean Result: '+scanner.hasNextBoolean()); //Change the delimiter of this scanner scanner.useDelimiter('/'); //Printing the tokenized Strings System.out.println('---Tokenizes String---'); while(scanner.hasNext()){ System.out.println(scanner.next()); } //Display the new delimiter System.out.println('Delimiter used: ' +scanner.delimiter()); scanner.close(); } }
Výkon:
Boolean Result: false ---Tokenizes String--- Hello This is JavaTpoint My name is Abhishek. Delimiter used: /