java scanner class tutorial with examples
V tej vadnici bomo razpravljali o uvozu in uporabi razreda skenerja Java skupaj z različnimi metodami, API-jem za optični bralnik in primeri:
Videli smo že standardne vhodno-izhodne metode, ki jih Java uporablja za branje / zapisovanje podatkov v standardne V / I naprave.
Java ponuja še en mehanizem za branje uporabniškega vnosa. To je razred skenerja. Čeprav ni zelo učinkovit, je razred Scanner najlažji in najprimernejši način za branje vnosa v programih Java.
=> Tukaj preverite VSE Vadnice za Java.
Kaj se boste naučili:
Razred Java Scanner: Pogled poglobljeno
Razred optičnega bralnika se večinoma uporablja za skeniranje vhoda in branje vnosa primitivnih (vgrajenih) podatkovnih vrst, kot so int, decimalna, dvojna itd. Če želite torej prebrati tip dt, lahko na splošno uporabite funkcijo nextdt () za branje vnosa.
Razred Scanner izvaja vmesnike Iterator (string), Closeable in AutoCloseable.
Raziščimo podrobnosti tega razreda skenerja.
Uvozi optični bralnik
Razred optičnega bralnika spada v paket 'java.util'. Če želite v svojem programu uporabljati razred Scanner, morate ta paket uvoziti na naslednji način.
uvoz java.util. *
ALI
uvoz java.util.Scanner;
Vsak od zgornjih stavkov bo uvozil razred Scanner in njegove funkcije v vaš program.
Razred optičnega bralnika Java
Ko je razred Scanner uvožen v program Java, ga lahko uporabite za branje vnosa različnih vrst podatkov. Glede na to, ali želite vhod brati s standardnega vhoda, datoteke ali kanala, lahko ustreznemu vnaprej določenemu objektu posredujete objekt Scanner.
Spodaj je osnovni primer uporabe razreda skenerja.
import java.util.*; public class Main { public static void main(String args()) { Scanner in = new Scanner (System.in); System.out.print ('Enter a String: '); String mystr = in.nextLine(); System.out.println('The String you entered is: ' + mystr); in.close(); } }
Izhod:
V zgornjem programu smo med ustvarjanjem predmeta razreda skenerja kot objekt navedli »System.in« (standardni vhod). Nato preberemo niz vnosa s standardnega vhoda.
Scanner API (konstruktorji in metode)
V tem poglavju bomo podrobno raziskali API razreda skenerja. Razred skenerja vsebuje različne preobremenjene konstruktorje za različne načine vnosa, kot so System.in, vnos datotek, pot itd.
Naslednja tabela vsebuje prototip in opis vsakega konstruktorja razreda Scanner.
najboljši strežniki za igranje na wow
Ne | Prototip | Opis |
---|---|---|
7. | Optični bralnik (vir poti, niz znakov) | Ta konstruktor izdela nov optični bralnik, ki pregleda določeno datoteko in ustvari vrednosti |
1. | Optični bralnik (vir InputStream) | Ta konstruktor izdela nov optični bralnik, ki skenira nov InputStream, izvor in ustvari vrednosti |
dva | Optični bralnik (vir InputStream, niz charsetName) | Ta konstruktor izdela nov optični bralnik, ki skenira nov InputStream, izvor in ustvari vrednosti |
3. | Optični bralnik (vir datoteke) | Ta konstruktor izdela nov optični bralnik, ki pregleda določeno datoteko in ustvari vrednosti |
4. | Optični bralnik (vir datoteke, niz charsetName) | Ta konstruktor izdela nov optični bralnik, ki pregleda določeno datoteko in ustvari vrednosti |
5. | Optični bralnik (vir niza) | Ta konstruktor izdela nov optični bralnik, ki pregleda določen niz in ustvari vrednosti |
6. | Optični bralnik (vir poti) | Ta konstruktor izdela nov optični bralnik, ki pregleda določeno datoteko in ustvari vrednosti |
8. | Optični bralnik (berljiv vir) | Ta konstruktor izdela nov optični bralnik, ki skenira določen vir in ustvari vrednosti |
9. | Optični bralnik (vir ReadableByteChannel) | Ta konstruktor izdela nov optični bralnik, ki pregleda določeni kanal in ustvari vrednosti |
10. | Optični bralnik (ReadableByteChannel vir, niz charsetName) | Ta konstruktor izdela nov optični bralnik, ki pregleda določeni kanal in ustvari vrednosti |
Tako kot konstruktorji tudi razred Scanner ponuja številne metode, ki se uporabljajo za skeniranje in branje vnosa. Ponuja različne logične metode, ki vam omogočajo, da preverite, ali je naslednji žeton v vhodu žeton določene vrste podatkov.
Upoštevajte, da lahko za vsak konstruktor navedete samo en argument z vnaprej določenim vhodnim objektom ali dva argumenta, sestavljena iz vnaprej določenega vhodnega predmeta in nabora znakov. V primeru enega argumenta se predpostavlja privzeti nabor znakov.
Obstajajo tudi metode za pridobivanje žetonov posamezne vrste podatkov.
Druge metode vključujejo metode za nastavitev področne nastavitve, radiksa, vzorcev ujemanja, zapiranja optičnega bralnika itd.
Naslednja tabela vsebuje prototip in opis vsake osnovne metode skenerja.
Ne | Prototip | Opis |
---|---|---|
7. | Logična vrednost hasNextFloat () | Preveri, ali je naslednji žeton v vhodu za optični bralnik tipa float |
1. | Logično hasNext () | Vrne true, če je v vnosu optičnega bralnika še en žeton |
dva | Logična vrednost hasNextBigDecimal () | Preveri, ali je naslednji žeton v vhodu za optični bralnik tipa bigDecimal. |
3. | Logično hasNextBigInteger () | Preveri, ali je naslednji žeton v vhodu za optični bralnik tipa bigInteger |
4. | Boolean hasNextBoolean () | Preveri, ali je naslednji žeton v vhodu za optični bralnik logične vrste |
5. | Logična vrednost hasNextByte () | Preveri, ali je naslednji žeton v vhodu za optični bralnik vrste Byte |
6. | Logična hasNextDouble () | Preveri, ali je naslednji žeton v vhodu za optični bralnik dvojnega tipa |
8. | Logično hasNextInt () | Preveri, ali je naslednji žeton v vhodu optičnega bralnika celoštevilčen |
9. | Logična vrednost hasNextLine () | Preveri, ali je naslednji žeton v vhodu za optični bralnik druga vrstica |
10. | Logična vrednost hasNextLong () | Preveri, ali je naslednji žeton v vhodu za optični bralnik dolge vrste |
enajst | Logična hasNextShort () | Preveri, ali je naslednji žeton v vhodu za optični bralnik kratkega tipa |
12. | String next () | Skenira vnos za naslednji popolni žeton |
13. | BigDecimal nextBigDecimal () | Skenira vhod za naslednji žeton BigDecimal |
14. | BigInteger nextBigInteger () | Skenira vnos za naslednji žeton BigInteger |
petnajst | Boolean nextBoolean () | Skenira vhod za naslednji logični žeton |
16. | Byte nextByte () | Optično prebere vhod za naslednji bajtni žeton |
17. | Double nextDouble () | Optično prebere vhod za naslednji dvojni žeton |
18. | Float nextFloat () | Skenira vnos za naslednji float žeton |
19. | Int nextInt () | Skenira vhod za naslednji celoštevilčni žeton |
dvajset | String nextLine () | Vhodni niz preskočite iz predmeta Scanner |
enaindvajset | Long nextLong () | Optično prebere vhod za naslednji dolgi celoštevilčni žeton |
22. | Kratek nextShort () | Optično prebere vhod za naslednji žeton kratkega celega števila |
2. 3 | Ponastavitev optičnega bralnika () | Ponastavite trenutno uporabljeni optični bralnik |
24. | Preskoči optični bralnik () | Prezri ločila in preskoči vnos, ki ustreza danemu vzorcu |
25. | Scanner useDelimiter() | Nastavite razmejitveni vzorec na določen vzorec |
26. | Uporaba optičnega bralnika Locale () | Nastavite objekt področne nastavitve Optični bralniki z dano področno nastavitvijo |
27. | Uporaba optičnega bralnika Radix () | Nastavite določeni radix kot privzeti radix za Scanner |
28. | Int radix () | Vrne privzeti radij trenutnega optičnega bralnika |
29. | odstrani praznino () | Lahko se uporablja, kadar Iterator ne podpira odstranjevanja |
30. | Tokenski žetoni () | Vrne tok ločil, ločenih z žetoni, iz trenutnega optičnega bralnika |
31. | String toString () | Prikaz vrnjenega niza danega optičnega bralnika, ki je trenutno v uporabi |
32 | IOException ioException () | Vrne izvleček IOException, ki ga je nazadnje vrnil bralni objekt Scanner |
33 | Najdi tok ALL () | Vrne tok rezultatov ujemanja, ki se ujemajo z danim vzorcem |
3. 4 | String findInLine () | Poiščite naslednji pojav vzorca iz danega niza; prezre ločila |
35 | String findWithinHorizon () | Poiščite naslednji pojav vzorca iz danega niza; prezre ločila |
36 | Ločilo vzorca () | Vrne vzorec, ki ga uporablja trenutni optični bralnik |
37 | Praznitev blizu () | Zapre optični bralnik |
38 | MatchResult match () | Vrne ujemajoč se rezultat zadnjega postopka optičnega branja |
39 | Lokalno lokalno () | Vrni lokacijo trenutnega optičnega bralnika |
Preveri tukaj če želite izvedeti več o metodah optičnega branja.
Kako uporabljati optični bralnik v Javi?
Zdaj, ko ste videli različne konstruktorje in metode, ki jih ponuja razred Scanner, bomo zdaj uvedli nekaj primerov, ki bodo pokazali, kako uporabljati razred Scanner v Javi.
Naslednja izvedba prikazuje uporabo razreda Scanner za branje vhodnih podatkov iz System.in, tj. Standardnega vhoda.
Tu uporabimo vnaprej določen objekt System.in za ustvarjanje objekta Scanner. Nato se od uporabnika zahteva, da vnese ime, razred in odstotek. Vse te podrobnosti se berejo s predmetom razreda Scanner.
Upoštevajte metode, ki jih uporabljajo objekti skenerja za branje različnih vrst vnosa. Ker je ime niz, objekt Scanner uporablja metodo next (). Za vnos razreda uporablja nextInt (), medtem ko za odstotek uporablja nextFloat ().
Na ta način lahko med branjem enostavno ločite vnos.
Rezultat programa prikazuje vneseni vhod in prikazane informacije.
import java.util.*; public class Main{ public static void main(String ()args){ String name; int myclass; float percentage; //creating object of Scanner class Scanner input = new Scanner(System.in); System.out.print('Enter your name: '); name = input.next(); System.out.print('Enter your class: '); myclass = input.nextInt(); System.out.print('Enter your percentage: '); percentage = input.nextFloat(); input.close(); System.out.println('Name: ' + name + ', Class: '+ myclass + ', Percentage: '+ percentage); } }
Izhod:
Niz optičnega bralnika
Kot smo že omenili, lahko med ustvarjanjem predmeta skenerja uporabite različne vnaprej določene predmete. To pomeni, da lahko vhod preberete s standardnega vhoda, datotek in različnih V / I kanalov ali tudi iz nizov.
Ko se uporablja vnos z nizom, lahko v njem uporabite tudi regularne izraze.
Naslednji primeri prikazujejo program, v katerem Scanner kot niz uporablja niz. Ta vhod nato optično prebere in žetone loči z branjem vsakega žetona.
Prebrani žetoni se nato prikažejo v izhodu.
import java.util.*; public class Main{ public static void main(String ()args){ System.out.println ('The subjects are as follows :'); String input = '1 Maths 2 English 3 Science 4 Hindi'; Scanner s = new Scanner(input); System.out.print(s.nextInt()+'. '); System.out.println(s.next()); System.out.print(s.nextInt()+'. '); System.out.println(s.next()); System.out.print(s.nextInt()+'. '); System.out.println(s.next()); System.out.print(s.nextInt()+'. '); System.out.println(s.next()); s.close(); } }
Izhod:
Zaprite optični bralnik
Razred Java Scanner za zapiranje optičnega bralnika uporablja metodo »Close ()«. Razred optičnega bralnika tudi interno izvaja vmesnik Closeable in zato, če optični bralnik še ni zaprt, osnovni bralni vmesnik prikliče svojo metodo zapiranja.
Dobra praksa programiranja je, da po končani uporabi izrecno zaprete optični bralnik z uporabo metode Close ().
Opomba: Če je objekt optičnega bralnika zaprt in se poskusi iskati, se prikaže „IllegalStateException“.
Pogosto zastavljena vprašanja
V # 1) Kakšen je razred Scanner v Javi?
Odgovor: Razred Scanner je del paketa 'java.util' Java in se uporablja za branje vnosa različnih primitivnih podatkovnih vrst, kot so int, float, nizi itd.
kako preizkusiti odjemalski strežniški program -
V # 2) Kakšna je razlika med metodama next () in nextLine () razreda Scanner?
Odgovor: Metoda next () bere vnos do presledka in po branju vnosa kazalec postavi v isto vrstico. Metoda nextLine () pa prebere celotno vrstico vnosa do konca vrstice, vključno s presledki.
V # 3) Kaj je hasNext () v Javi?
Odgovor: Metoda hasNext () je ena izmed metod Java Scanner. Ta metoda vrne vrednost true, če ima optični bralnik v vhodu drug žeton.
V # 4) Ali morate zapreti razred skenerja?
Odgovor: Bolje, vendar ni obvezno, da zaprete razred skenerja, saj če ni zaprt, osnovni berljivi vmesnik razreda skenerja opravi delo namesto vas. Prevajalnik morda utripa z opozorilom, če ni zaprt.
Kot dobro prakso programiranja vedno zaprite optični bralnik.
V # 5) Kakšen je namen sistema.in v razredu optičnega bralnika?
Odgovor: Z uporabo »System.in« v razredu skenerja skenerju omogoča branje tipkovnice, povezane s standardnimi vhodnimi podatki.
Zaključek
V tej vadnici smo videli razred Scanner in vse njegove podrobnosti, vključno z API-jem in implementacijo. Razred optičnega bralnika se uporablja za branje vhodnih podatkov z različnih medijev, kot so standardni vnos, datoteke, IO kanali, nizi z / brez regularnih izrazov itd.
Čeprav optični bralnik ni zelo učinkovit način za branje vnosa, je to eden najlažjih načinov. Skener omogoča branje vnosa različnih primitivnih podatkovnih vrst, kot so int, float, nizi itd. Ko niz uporabljate kot vhodni objekt za razred skenerja, lahko z njim uporabite tudi regularne izraze.
Razred optičnega bralnika omogoča tudi branje vnosa z ujemanjem določenega vzorca ali ločila.
Na koncu je uporaba razreda Scanner v Javi še vedno najlažji in najprimernejši način za branje vnosa.
=> Tukaj si oglejte Perfect Java Training Guide.
Priporočeno branje
- Kaj je Java Vector | Vadnica Java Vector Class s primeri
- Vadnica razreda Java Array - java.util.Arrays Class s primeri
- JAVA Vadnica za začetnike: 100+ praktičnih Javnih video vadnic
- Vadnica Java vmesnika in abstraktnega razreda s primeri
- Vadnica za odsev Java s primeri
- Nazobčan niz v Javi - Vadnica s primeri
- Vadnica za dolžino polja Java s primeri kode
- Vadnica za Java String | Nizovske metode Java s primeri