Java valodā skeneris ir java.util pakotnes klase, ko izmanto primitīvu veidu, piemēram, int, double utt., un virkņu ievades iegūšanai.
Skenera klases izmantošana Java ir vienkāršākais veids, kā lasīt ievadi Java programmā, taču tas nav īpaši efektīvs, ja vēlaties izmantot ievades metodi scenārijiem, kuros laiks ir ierobežojums, piemēram, konkurētspējīgā programmēšanā.
Java skenera ievades veidi
Skenera klase palīdz uzņemt standarta ievades straumi Java. Tātad, mums ir vajadzīgas dažas metodes, lai iegūtu datus no straumes. Datu iegūšanai izmantotās metodes ir minētas zemāk:
| Metode jdbc | Apraksts |
|---|---|
| nākamais Būla() | Izmanto Būla vērtības nolasīšanai |
| nextByte() | Izmanto baitu vērtības nolasīšanai |
| nākamaisDouble() | Izmanto Dubultās vērtības nolasīšanai |
| nextFloat() | Izmanto peldošās vērtības nolasīšanai |
| nextInt() | Izmanto Int vērtības nolasīšanai |
| Izmanto līnijas vērtības nolasīšanai | |
| nextLong() | Izmanto garās vērtības lasīšanai |
| nextShort() df loc | Izmanto Īsās vērtības nolasīšanai |
Apskatīsim koda fragmentu, lai nolasītu dažādu datu tipu datus.
Java skenera klases piemēri
1. piemērs:
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);> >}> }> |
>
virtuālā atmiņa
>
Ievade
Geek F 40 9876543210 9.9>
Izvade
Name: Geek Gender: F Age: 40 Mobile Number: 9876543210 CGPA: 9.9>
Dažreiz mums ir jāpārbauda, vai nākamā vērtība, ko nolasām, ir noteikta veida vai ievade ir beigusies (konstatēts EOF marķieris).
Pēc tam mēs pārbaudām, vai skenera ievade ir tāda veida, kādu mēs vēlamies, izmantojot funkcijas hasNextXYZ(), kur XYZ ir mūs interesējošais tips. Funkcija atgriež true, ja skenerim ir šāda veida marķieris, pretējā gadījumā — false. Piemēram, zemāk esošajā kodā mēs esam izmantojuši hasNextInt(). Lai pārbaudītu virkni, mēs izmantojam hasNextLine(). Līdzīgi, lai pārbaudītu vienu rakstzīmi, mēs izmantojam hasNext().charAt(0).
2. piemērs:
Apskatīsim koda fragmentu, lai no konsoles izlasītu dažus skaitļus un izdrukātu to vidējo.
Java
// 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>>> >int> mean = sum / count;> >System.out.println(>'Mean: '> + mean);> >}> >else> {> >System.out.println(> >'No integers were input. Mean cannot be calculated.'>);> >}> >}> }> |
>
tīklu veidi
>
Ievade
1 2 3 4 5>
Izvade
Mean: 3>
Svarīgi punkti par Java skenera klasi
- Lai izveidotu skenera klases objektu, mēs parasti nododam iepriekš definētu objektu System.in, kas apzīmē standarta ievades straumi. Mēs varam nodot objektu no klases Fails, ja vēlamies nolasīt ievadi no faila.
- Lai nolasītu noteikta datu tipa XYZ skaitliskās vērtības, izmantojamā funkcija ir nextXYZ(). Piemēram, lai nolasītu īstermiņa vērtību, mēs varam izmantot nextShort()
- Lai lasītu virknes, mēs izmantojam nextLine().
- Lai lasītu vienu rakstzīmi, mēs izmantojam next().charAt(0). Funkcija next() atgriež nākamo marķieri/vārdu ievadē kā virkni, un funkcija charAt(0) atgriež pirmo rakstzīmi šajā virknē.
- Skeneru klase nolasa visu rindu un sadala rindu marķieros. Tokeni ir mazi elementi, kuriem ir kāda nozīme Java kompilatorā. Piemēram, pieņemsim, ka ir ievades virkne: How are you
Šajā gadījumā skenera objekts nolasīs visu rindiņu un sadala virkni marķieros: How, are and you. Pēc tam objekts atkārto katru marķieri un nolasa katru marķieri, izmantojot tās dažādās metodes.