logo

Clasa de scaner în Java

În Java, Scanner este o clasă din pachetul java.util folosită pentru a obține introducerea tipurilor primitive precum int, double etc. și șiruri.

Utilizarea clasei Scanner în Java este cea mai ușoară modalitate de a citi intrările într-un program Java, deși nu este foarte eficientă dacă doriți o metodă de introducere pentru scenarii în care timpul este o constrângere ca în programarea competitivă.

Tipuri de intrare Java Scanner

Clasa scanner ajută la preluarea fluxului de intrare standard în Java. Deci, avem nevoie de câteva metode pentru a extrage date din flux. Metodele utilizate pentru extragerea datelor sunt menționate mai jos:



Metodă

mylivericket

Descriere

nextBoolean()

Folosit pentru citirea valorii booleene

nextByte()

Folosit pentru citirea valorii octet

următorulDublu()

Folosit pentru citirea valorii duble

nextFloat()

Folosit pentru citirea valorii Float

nextInt()

Folosit pentru citirea valorii int

nextLine()

Folosit pentru citirea valorii liniei

următorulLung()

Folosit pentru citirea valorii lungi

nextShort()

Folosit pentru citirea valorii scurte

Să ne uităm la fragmentul de cod pentru a citi date de diferite tipuri de date.

Exemple de clasă Java Scanner

Exemplul 1:

Java

diferența dintre $ și $$




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

>

>

program java simplu

Intrare

Geek F 40 9876543210 9.9>

Ieșire

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

Uneori, trebuie să verificăm dacă următoarea valoare pe care o citim este de un anumit tip sau dacă intrarea s-a încheiat (marker EOF întâlnit).

Apoi, verificăm dacă intrarea scanerului este de tipul dorit cu ajutorul funcțiilor hasNextXYZ() unde XYZ este tipul care ne interesează. Funcția returnează true dacă scanerul are un token de acel tip, altfel fals. De exemplu, în codul de mai jos, am folosit hasNextInt(). Pentru a verifica un șir, folosim hasNextLine(). În mod similar, pentru a verifica un singur caracter, folosim hasNext().charAt(0).

Exemplul 2:

Să ne uităm la fragmentul de cod pentru a citi unele numere de pe consolă și a le imprima media.

Java


tring la int



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

metode în java
>

>

Intrare

1 2 3 4 5>

Ieșire

Mean: 3>

Puncte importante despre clasa Java Scanner

  • Pentru a crea un obiect din clasa Scanner, de obicei trecem obiectul predefinit System.in, care reprezintă fluxul de intrare standard. Putem trece un obiect din clasa Fișier dacă dorim să citim intrarea dintr-un fișier.
  • Pentru a citi valorile numerice ale unui anumit tip de date XYZ, funcția de utilizat este nextXYZ(). De exemplu, pentru a citi o valoare de tip short, putem folosi nextShort()
  • Pentru a citi șiruri, folosim nextLine().
  • Pentru a citi un singur caracter, folosim next().charAt(0). Funcția next() returnează următorul token/cuvânt din intrare ca șir, iar funcția charAt(0) returnează primul caracter din acel șir.
  • Clasa Scanner citește o linie întreagă și împarte linia în jetoane. Token-urile sunt elemente mici care au o anumită semnificație pentru compilatorul Java. De exemplu, să presupunem că există un șir de intrare: Ce ești
    În acest caz, obiectul scanerului va citi întreaga linie și împarte șirul în jetoane: Cum, ești și tu. Apoi, obiectul iterează peste fiecare jeton și citește fiecare jeton folosind metodele sale diferite.