logo

Razred Scanner v Javi

V Javi je Scanner razred v paketu java.util, ki se uporablja za pridobivanje vnosa primitivnih tipov, kot so int, double itd., in nizov.

Uporaba razreda Scanner v Javi je najlažji način za branje vnosa v programu Java, čeprav ni zelo učinkovit, če želite metodo vnosa za scenarije, kjer je čas omejitev, kot je v tekmovalnem programiranju.

Vrste vnosa Java Scanner

Razred Scanner pomaga sprejeti standardni vhodni tok v Javi. Torej potrebujemo nekaj metod za pridobivanje podatkov iz toka. Metode, uporabljene za pridobivanje podatkov, so navedene spodaj:



Metoda

Opis

nextBoolean()

Uporablja se za branje logične vrednosti

nextByte()

Uporablja se za branje vrednosti bajta

nextDouble()

Uporablja se za branje dvojne vrednosti

nextFloat()

10 ml do oz
Uporablja se za branje plavajoče vrednosti

nextInt()

Uporablja se za branje vrednosti Int

naslednja vrstica()

Uporablja se za branje vrednosti vrstice

nextLong()

Uporablja se za branje dolge vrednosti

nextShort()

math.pow java
Uporablja se za branje kratke vrednosti

Oglejmo si delček kode za branje podatkov različnih tipov podatkov.

Primeri razreda Java Scanner Class

Primer 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);> >}> }>

>

>

Vnos

Geek F 40 9876543210 9.9>

Izhod

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

Včasih moramo preveriti, ali je naslednja vrednost, ki jo preberemo, določene vrste ali če se je vnos končal (naleteli smo na oznako EOF).

sredinski gumb css

Nato s pomočjo funkcij hasNextXYZ(), kjer je XYZ vrsta, ki nas zanima, preverimo, ali je vnos optičnega bralnika tiste vrste, ki jo želimo. Funkcija vrne true, če ima optični bralnik žeton te vrste, sicer pa false. Na primer, v spodnji kodi smo uporabili hasNextInt(). Za preverjanje niza uporabimo hasNextLine(). Podobno za preverjanje posameznega znaka uporabimo hasNext().charAt(0).

Primer 2:

Poglejmo delček kode, da preberemo nekaj števil s konzole in natisnemo njihovo povprečje.

Java


podatkovne strukture v Javi



// 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.'>);> >}> >}> }>

>

>

Vnos

1 2 3 4 5>

Izhod

Mean: 3>

Pomembne točke o razredu Java Scanner

  • Za ustvarjanje predmeta razreda Scanner običajno posredujemo vnaprej določen objekt System.in, ki predstavlja standardni vhodni tok. Lahko posredujemo objekt razreda File, če želimo prebrati vhod iz datoteke.
  • Za branje številskih vrednosti določenega podatkovnega tipa XYZ uporabite funkcijo nextXYZ(). Na primer, če želite prebrati vrednost tipa short, lahko uporabimo nextShort()
  • Za branje nizov uporabljamo nextLine().
  • Za branje enega znaka uporabimo next().charAt(0). funkcija next() vrne naslednji žeton/besedo v vhodu kot niz, funkcija charAt(0) pa vrne prvi znak v tem nizu.
  • Razred Scanner prebere celotno vrstico in jo razdeli na žetone. Žetoni so majhni elementi, ki imajo določen pomen za prevajalnik Java. Recimo, da obstaja vhodni niz: Kako si
    V tem primeru bo objekt optičnega bralnika prebral celotno vrstico in razdelil niz na žetone: Kako, si in ti. Objekt nato ponovi vsak žeton in prebere vsak žeton z različnimi metodami.