Třída skeneru v jazyce Java se nachází v balíčku java.util. Java poskytuje různé způsoby čtení vstupu z klávesnice, třída java.util.Scanner je jedním z nich.
Třída Java Scanner rozdělí vstup na tokeny pomocí oddělovače, který je ve výchozím nastavení prázdný. Poskytuje mnoho metod pro čtení a analýzu různých primitivních hodnot.
Třída Java Scanner se široce používá k analýze textu na řetězce a primitivní typy pomocí regulárního výrazu. Je to nejjednodušší způsob, jak získat vstup v Javě. Pomocí Scanneru v Javě můžeme získat vstup od uživatele v primitivních typech, jako je int, long, double, byte, float, short atd.
Třída Java Scanner rozšiřuje třídu Object a implementuje rozhraní Iterator a Closeable.
Třída Java Scanner poskytuje metody nextXXX() pro vrácení typu hodnoty, jako je nextInt(), nextByte(), nextShort(), next(), nextLine(), nextDouble(), nextFloat(), nextBoolean() atd. Chcete-li získat jeden znak ze skeneru, můžete zavolat metodu next().charAt(0), která vrátí jeden znak.
přeškrtnutí
Deklarace třídy Java Scanner
public final class Scanner extends Object implements Iterator
Jak získat Java Scanner
Abychom získali instanci Java Scanner, která čte vstup od uživatele, musíme předat vstupní proud (System.in) v konstruktoru třídy Scanner. Například:
Scanner in = new Scanner(System.in);
Abychom získali instanci Java Scanner, která analyzuje řetězce, musíme předat řetězce v konstruktoru třídy Scanner. Například:
řetězec do data
Scanner in = new Scanner('Hello Javatpoint');
Konstruktory třídy Java Scanner
SN | Konstruktér | Popis |
---|---|---|
1) | Skener (zdroj souboru) | Vytvoří nový skener, který vytvoří hodnoty naskenované ze zadaného souboru. |
2) | Skener (zdroj souboru, řetězec charsetName) | Vytvoří nový skener, který vytvoří hodnoty naskenované ze zadaného souboru. |
3) | Skener (zdroj InputStream) | Vytváří nový skener, který vytváří hodnoty naskenované ze zadaného vstupního toku. |
4) | Skener (zdroj InputStream, String charsetName) | Vytváří nový skener, který vytváří hodnoty naskenované ze zadaného vstupního toku. |
5) | Skener (čitelný zdroj) | Vytváří nový skener, který vytváří hodnoty naskenované ze zadaného zdroje. |
6) | Skener (zdroj řetězce) | Vytvoří nový skener, který vytvoří hodnoty naskenované ze zadaného řetězce. |
7) | Skener (zdroj ReadableByteChannel) | Vytváří nový skener, který vytváří hodnoty naskenované ze zadaného kanálu. |
8) | Scanner (zdroj ReadableByteChannel, String charsetName) | Vytváří nový skener, který vytváří hodnoty naskenované ze zadaného kanálu. |
9) | Skener (zdroj cesty) | Vytvoří nový skener, který vytvoří hodnoty naskenované ze zadaného souboru. |
10) | Scanner (zdroj cesty, řetězec charsetName) | Vytvoří nový skener, který vytvoří hodnoty naskenované ze zadaného souboru. |
Metody třídy Java Scanner
Níže je uveden seznam metod skeneru:
SN | Modifikátor a typ | Metoda | Popis |
---|---|---|---|
1) | prázdnota | zavřít() | Slouží k uzavření tohoto skeneru. |
2) | vzor | oddělovač() | Používá se k získání vzoru, který třída Scanner aktuálně používá ke spárování oddělovačů. |
3) | Proud | findAll() | Používá se k nalezení proudu výsledků shody, které odpovídají zadanému řetězci vzoru. |
4) | Tětiva | findInLine() | Používá se k nalezení dalšího výskytu vzoru vytvořeného ze zadaného řetězce, přičemž se ignorují oddělovače. |
5) | tětiva | findWithinHorizon() | Používá se k nalezení dalšího výskytu vzoru vytvořeného ze zadaného řetězce, přičemž se ignorují oddělovače. |
6) | booleovský | hasNext() | Vrací hodnotu true, pokud má tento skener na vstupu jiný token. |
7) | booleovský | hasNextBigDecimal() | Používá se ke kontrole, zda lze další token ve vstupu tohoto skeneru interpretovat jako BigDecimal pomocí metody nextBigDecimal() nebo ne. |
8) | booleovský | hasNextBigInteger() | Používá se ke kontrole, zda lze další token ve vstupu tohoto skeneru interpretovat jako BigDecimal pomocí metody nextBigDecimal() nebo ne. |
9) | booleovský | hasNextBoolean() | Používá se ke kontrole, zda lze další token ve vstupu tohoto skeneru interpretovat jako booleovský pomocí metody nextBoolean() nebo ne. |
10) | booleovský | hasNextByte() | Používá se ke kontrole, zda lze další token ve vstupu tohoto skeneru interpretovat jako Byte pomocí metody nextBigDecimal() nebo ne. |
jedenáct) | booleovský | hasNextDouble() | Používá se ke kontrole, zda lze další token ve vstupu tohoto skeneru interpretovat jako BigDecimal pomocí metody nextByte() nebo ne. |
12) | booleovský | hasNextFloat() | Používá se ke kontrole, zda lze další token ve vstupu tohoto skeneru interpretovat jako plovoucí pomocí metody nextFloat() nebo ne. |
13) | booleovský | hasNextInt() | Používá se ke kontrole, zda lze další token ve vstupu tohoto skeneru interpretovat jako int pomocí metody nextInt() nebo ne. |
14) | booleovský | hasNextLine() | Slouží ke kontrole, zda je na vstupu tohoto skeneru další řádek nebo ne. |
patnáct) | booleovský | hasNextLong() | Používá se ke kontrole, zda lze další token ve vstupu tohoto skeneru interpretovat jako Long pomocí metody nextLong() nebo ne. |
16) | booleovský | hasNextShort() | Používá se ke kontrole, zda lze další token ve vstupu tohoto skeneru interpretovat jako Short pomocí metody nextShort() nebo ne. |
17) | IOException | ioException() | Používá se k tomu, aby byla výjimka IOException naposledy čtena tímto skenerem. |
18) | Místní | místní() | Používá se k získání Locale třídy Scanner. |
19) | Výsledek zápasu | zápas() | Používá se k získání výsledku shody poslední skenovací operace provedené tímto skenerem. |
dvacet) | Tětiva | další() | Používá se k získání dalšího kompletního tokenu ze skeneru, který se používá. |
dvacet jedna) | BigDecimal | nextBigDecimal() | Prohledá další token vstupu jako BigDecimal. |
22) | BigInteger | dalšíBigInteger() | Prohledá další token vstupu jako BigInteger. |
23) | booleovský | nextBoolean() | Prohledá další token vstupu do booleovské hodnoty a vrátí tuto hodnotu. |
24) | byte | dalšíByte() | Prohledá další token vstupu jako bajt. |
25) | dvojnásobek | nextDouble() | Prohledá další token vstupu jako dvojitý. |
26) | plovák | nextFloat() | Prohledá další token vstupu jako plovoucí. |
27) | int | nextInt() | Prohledá další token vstupu jako Int. |
28) | Tětiva | další řádek() | Používá se k získání vstupního řetězce, který byl u objektu Scanner vynechán. |
29) | dlouho | nextLong() | Prohledá další token vstupu jako dlouhý. |
30) | krátký | nextShort() | Prohledá další token vstupu jako zkrat. |
31) | int | základ() | Používá se k získání výchozího radixu použití skeneru. |
32) | prázdnota | odstranit() | Používá se, když tato implementace Iterátoru nepodporuje operaci odebrání. |
33) | Skener | reset() | Používá se k resetování používaného skeneru. |
3. 4) | Skener | přeskočit() | Přeskočí vstup, který odpovídá zadanému vzoru, a ignoruje oddělovače |
35) | Proud | tokeny() | Používá se k získání proudu tokenů oddělených oddělovači z objektu Scanner, který se používá. |
36) | Tětiva | toString() | Používá se k získání řetězcové reprezentace pomocí Scanneru. |
37) | Skener | useDelimiter() | Používá se k nastavení vymezovacího vzoru skeneru, který se používá, na zadaný vzor. |
38) | Skener | useLocale() | Používá se k nastavení objektu národního prostředí tohoto skeneru na zadané národní prostředí. |
39) | Skener | useRadix() | Používá se k nastavení výchozího radixu skeneru, který se používá, na zadaný radix. |
Příklad 1
Podívejme se na jednoduchý příklad Java Scanneru, kde dostáváme jediný vstup od uživatele. Zde žádáme o řetězec prostřednictvím metody 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ýstup:
Enter your name: sonoo jaiswal Name is: sonoo jaiswal
Pří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ýstup:
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
Pří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ýstup:
Boolean Result: false ---Tokenizes String--- Hello This is JavaTpoint My name is Abhishek. Delimiter used: /