logo

Java Scanner

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: /