logo

Java skener

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