logo

Trieda skenera v jazyku Java

V Jave je Scanner trieda v balíku java.util, ktorá sa používa na získanie vstupu primitívnych typov ako int, double atď. a reťazcov.

Použitie triedy Scanner v jazyku Java je najjednoduchší spôsob, ako čítať vstup v programe Java, aj keď nie veľmi efektívny, ak chcete metódu vstupu pre scenáre, kde je časový limit ako pri konkurenčnom programovaní.

Typy vstupu skenera Java

Trieda skenera pomáha prevziať štandardný vstupný tok v jazyku Java. Potrebujeme teda nejaké metódy na extrahovanie údajov z prúdu. Metódy používané na extrakciu údajov sú uvedené nižšie:



hackerské spracovanie

Metóda

Popis

nextBoolean()

Používa sa na čítanie boolovskej hodnoty

nextByte()

Používa sa na čítanie hodnoty Byte

nextDouble()

Používa sa na čítanie hodnoty Double

nextFloat()

Používa sa na čítanie hodnoty Float

nextInt()

Používa sa na čítanie hodnoty Int

dalsiriadok()

Používa sa na čítanie hodnoty riadku

nextLong()

Používa sa na čítanie hodnoty Long

nextShort()

prológový jazyk
Používa sa na čítanie krátkej hodnoty

Pozrime sa na útržok kódu na čítanie údajov rôznych typov údajov.

Príklady triedy Java Scanner Class

Príklad 1:

Java




// Java program to read data of various types> // using Scanner class.> import> java.util.Scanner;> // Driver Class> public> class> ScannerDemo1 {> >// main function> >public> static> void> main(String[] args)> >{> >// Declare the object and initialize with> >// predefined standard input object> >Scanner sc =>new> Scanner(System.in);> >// String input> >String name = sc.nextLine();> >// Character input> >char> gender = sc.next().charAt(>0>);> >// Numerical data input> >// byte, short and float can be read> >// using similar-named functions.> >int> age = sc.nextInt();> >long> mobileNo = sc.nextLong();> >double> cgpa = sc.nextDouble();> >// Print the values to check if the input was> >// correctly obtained.> >System.out.println(>'Name: '> + name);> >System.out.println(>'Gender: '> + gender);> >System.out.println(>'Age: '> + age);> >System.out.println(>'Mobile Number: '> + mobileNo);> >System.out.println(>'CGPA: '> + cgpa);> >}> }>

>

csv súbor čítať java
>

Vstup

Geek F 40 9876543210 9.9>

Výkon

Name: Geek Gender: F Age: 40 Mobile Number: 9876543210 CGPA: 9.9>

Niekedy musíme skontrolovať, či nasledujúca hodnota, ktorú čítame, je určitého typu alebo či sa vstup skončil (našiel sa marker EOF).

Potom pomocou funkcií hasNextXYZ() skontrolujeme, či je vstup skenera požadovaného typu, pričom XYZ je typ, ktorý nás zaujíma. Funkcia vráti hodnotu true, ak má skener token tohto typu, v opačnom prípade vráti hodnotu false. Napríklad v nižšie uvedenom kóde sme použili hasNextInt(). Na kontrolu reťazca používame hasNextLine(). Podobne na kontrolu jedného znaku použijeme hasNext().charAt(0).

Príklad 2:

Pozrime sa na útržok kódu, aby sme si prečítali niektoré čísla z konzoly a vytlačili ich priemer.

Java

java chvost




// Java program to read some values using Scanner> // class and print their mean.> import> java.util.Scanner;> public> class> ScannerDemo2 {> >public> static> void> main(String[] args)> >{> >// Declare an object and initialize with> >// predefined standard input object> >Scanner sc =>new> Scanner(System.in);> >// Initialize sum and count of input elements> >int> sum =>0>, count =>0>;> >// Check if an int value is available> >while> (sc.hasNextInt()) {> >// Read an int value> >int> num = sc.nextInt();> >sum += num;> >count++;> >}> >if> (count>>0>) {> >int> mean = sum / count;> >System.out.println(>'Mean: '> + mean);> >}> >else> {> >System.out.println(> >'No integers were input. Mean cannot be calculated.'>);> >}> >}> }>

32-bitová architektúra vs 64-bitová
>

>

Vstup

1 2 3 4 5>

Výkon

Mean: 3>

Dôležité body o triede Java Scanner

  • Na vytvorenie objektu triedy Scanner zvyčajne odovzdávame preddefinovaný objekt System.in, ktorý predstavuje štandardný vstupný tok. Môžeme odovzdať objekt triedy File, ak chceme čítať vstup zo súboru.
  • Na čítanie číselných hodnôt určitého dátového typu XYZ sa použije funkcia nextXYZ(). Napríklad na prečítanie hodnoty typu short môžeme použiť nextShort()
  • Na čítanie reťazcov používame nextLine().
  • Na prečítanie jedného znaku použijeme next().charAt(0). Funkcia next() vráti ďalší token/slovo na vstupe ako reťazec a funkcia charAt(0) vráti prvý znak v tomto reťazci.
  • Trieda Scanner prečíta celý riadok a rozdelí riadok na tokeny. Tokeny sú malé prvky, ktoré majú pre kompilátor Java určitý význam. Predpokladajme napríklad, že existuje vstupný reťazec: How are you
    V tomto prípade objekt skenera prečíta celý riadok a rozdelí reťazec na žetóny: How, are and you. Objekt potom iteruje každý token a číta každý token pomocou rôznych metód.