Skannerklassen i Java finnes i pakken java.util. Java gir ulike måter å lese inndata fra tastaturet på, java.util.Scanner-klassen er en av dem.
Java Scanner-klassen deler inndataene inn i tokens ved hjelp av et skilletegn som er mellomrom som standard. Det gir mange metoder for å lese og analysere ulike primitive verdier.
Java Scanner-klassen er mye brukt til å analysere tekst for strenger og primitive typer ved å bruke et regulært uttrykk. Det er den enkleste måten å få input i Java. Ved hjelp av Scanner i Java kan vi få input fra brukeren i primitive typer som int, long, double, byte, float, short, etc.
Java Scanner-klassen utvider Objektklassen og implementerer Iterator- og Closeable-grensesnitt.
Java Scanner-klassen gir nextXXX()-metoder for å returnere verditypen som nextInt(), nextByte(), nextShort(), next(), nextLine(), nextDouble(), nextFloat(), nextBoolean(), osv. For å få et enkelt tegn fra skanneren, kan du kalle neste().charAt(0)-metoden som returnerer et enkelt tegn.
Klasseerklæring for Java-skanner
public final class Scanner extends Object implements Iterator
Hvordan få Java-skanner
For å få forekomsten av Java Scanner som leser input fra brukeren, må vi sende inndatastrømmen (System.in) i konstruktøren til Scanner-klassen. For eksempel:
Scanner in = new Scanner(System.in);
For å få forekomsten av Java Scanner som analyserer strengene, må vi sende strengene i konstruktøren til Scanner-klassen. For eksempel:
Scanner in = new Scanner('Hello Javatpoint');
Java Scanner Class Constructors
SN | Konstruktør | Beskrivelse |
---|---|---|
1) | Skanner (filkilde) | Den konstruerer en ny skanner som produserer verdier skannet fra den angitte filen. |
2) | Skanner (filkilde, strengtegnsettnavn) | Den konstruerer en ny skanner som produserer verdier skannet fra den angitte filen. |
3) | Skanner (InputStream-kilde) | Den konstruerer en ny skanner som produserer verdier skannet fra den angitte inngangsstrømmen. |
4) | Skanner (InputStream-kilde, String charsetName) | Den konstruerer en ny skanner som produserer verdier skannet fra den angitte inngangsstrømmen. |
5) | Skanner (lesbar kilde) | Den konstruerer en ny skanner som produserer verdier skannet fra den angitte kilden. |
6) | Skanner (strengkilde) | Den konstruerer en ny skanner som produserer verdier skannet fra den angitte strengen. |
7) | Skanner (ReadableByteChannel-kilde) | Den konstruerer en ny skanner som produserer verdier skannet fra den angitte kanalen. |
8) | Skanner (ReadableByteChannel-kilde, String charsetName) | Den konstruerer en ny skanner som produserer verdier skannet fra den angitte kanalen. |
9) | Skanner (banekilde) | Den konstruerer en ny skanner som produserer verdier skannet fra den angitte filen. |
10) | Skanner (banekilde, strengtegnsettnavn) | Den konstruerer en ny skanner som produserer verdier skannet fra den angitte filen. |
Klassemetoder for Java-skanner
Følgende er listen over skannermetoder:
SN | Modifikator og type | Metode | Beskrivelse |
---|---|---|---|
1) | tomrom | Lukk() | Den brukes til å lukke denne skanneren. |
2) | mønster | skilletegn() | Den brukes til å hente mønsteret som Scanner-klassen bruker for å matche skilletegn. |
3) | Strøm | finnAlle() | Den brukes til å finne en strøm av kampresultater som samsvarer med den angitte mønsterstrengen. |
4) | String | findInLine() | Den brukes til å finne neste forekomst av et mønster konstruert fra den angitte strengen, og ignorerer skilletegn. |
5) | streng | findWithinHorizon() | Den brukes til å finne neste forekomst av et mønster konstruert fra den angitte strengen, og ignorerer skilletegn. |
6) | boolsk | hasNext() | Den returnerer sann hvis denne skanneren har et annet token i inngangen. |
7) | boolsk | hasNextBigDecimal() | Den brukes til å sjekke om neste token i denne skannerens inngang kan tolkes som en BigDecimal ved å bruke nextBigDecimal()-metoden eller ikke. |
8) | boolsk | hasNextBigInteger() | Den brukes til å sjekke om neste token i denne skannerens inngang kan tolkes som en BigDecimal ved å bruke nextBigDecimal()-metoden eller ikke. |
9) | boolsk | hasNextBoolean() | Den brukes til å sjekke om neste token i denne skannerens inngang kan tolkes som en boolsk ved å bruke nextBoolean()-metoden eller ikke. |
10) | boolsk | hasNextByte() | Den brukes til å sjekke om neste token i denne skannerens inngang kan tolkes som en byte ved å bruke nextBigDecimal()-metoden eller ikke. |
elleve) | boolsk | hasNextDouble() | Den brukes til å sjekke om neste token i denne skannerens inngang kan tolkes som en BigDecimal ved bruk av nextByte()-metoden eller ikke. |
12) | boolsk | hasNextFloat() | Den brukes til å sjekke om neste token i denne skannerens inngang kan tolkes som en Float ved å bruke nextFloat()-metoden eller ikke. |
1. 3) | boolsk | hasNextInt() | Den brukes til å sjekke om neste token i denne skannerens inngang kan tolkes som en int ved hjelp av nextInt()-metoden eller ikke. |
14) | boolsk | hasNextLine() | Den brukes til å sjekke om det er en annen linje i inngangen til denne skanneren eller ikke. |
femten) | boolsk | hasNextLong() | Den brukes til å sjekke om neste token i denne skannerens inngang kan tolkes som en Long ved å bruke nextLong()-metoden eller ikke. |
16) | boolsk | hasNextShort() | Den brukes til å sjekke om neste token i denne skannerens inngang kan tolkes som en Short ved å bruke nextShort()-metoden eller ikke. |
17) | IOException | ioException() | Den brukes til å få IOException sist kastet av denne skanneren til å leses. |
18) | Lokalt | lokal() | Den brukes til å få en Locale for Scanner-klassen. |
19) | MatchResultat | kamp() | Den brukes til å få matchresultatet av den siste skanneoperasjonen utført av denne skanneren. |
tjue) | String | neste() | Den brukes til å hente neste komplette token fra skanneren som er i bruk. |
tjueen) | BigDesimal | nextBigDecimal() | Den skanner neste token av inngangen som en BigDesimal. |
22) | Stort heltall | nextBigInteger() | Den skanner neste token av inngangen som et BigInteger. |
23) | boolsk | nextBoolean() | Den skanner neste token av inndata til en boolsk verdi og returnerer denne verdien. |
24) | byte | nextByte() | Den skanner neste token av inngangen som en byte. |
25) | dobbelt | nextDouble() | Den skanner neste token av inngangen som en dobbel. |
26) | flyte | nextFloat() | Den skanner neste token av inngangen som en flyte. |
27) | int | nextInt() | Den skanner neste token av inngangen som en Int. |
28) | String | nextLine() | Den brukes til å hente inn-strengen som ble hoppet over av skannerobjektet. |
29) | lang | nextLong() | Den skanner neste token av inngangen som en lang. |
30) | kort | nextShort() | Den skanner neste token av inngangen som en kort. |
31) | int | radix() | Den brukes til å få standardradix for skannerbruken. |
32) | tomrom | fjerne() | Den brukes når fjerningsoperasjonen ikke støttes av denne implementeringen av Iterator. |
33) | Skanner | nullstille() | Den brukes til å tilbakestille skanneren som er i bruk. |
3. 4) | Skanner | hoppe over() | Den hopper over inndata som samsvarer med det angitte mønsteret, og ignorerer skilletegn |
35) | Strøm | tokens() | Den brukes til å få en strøm av skilletegn-separerte tokens fra skannerobjektet som er i bruk. |
36) | String | toString() | Den brukes til å få strengrepresentasjonen av Scanner ved hjelp av. |
37) | Skanner | useDelimiter() | Den brukes til å sette avgrensningsmønsteret til skanneren som er i bruk til det angitte mønsteret. |
38) | Skanner | useLocale() | Den brukes til å sette denne skannerens lokalitetsobjekt til den angitte lokaliteten. |
39) | Skanner | useRadix() | Den brukes til å sette standard radix for skanneren som er i bruk til den spesifiserte radixen. |
Eksempel 1
La oss se et enkelt eksempel på Java Scanner hvor vi får en enkelt inngang fra brukeren. Her ber vi om en streng gjennom metoden in.nextLine().
import java.util.*; public class ScannerExample { public static void main(String args[]){ Scanner in = new Scanner(System.in); System.out.print('Enter your name: '); String name = in.nextLine(); System.out.println('Name is: ' + name); in.close(); } }
Produksjon:
Enter your name: sonoo jaiswal Name is: sonoo jaiswal
Eksempel 2
import java.util.*; public class ScannerClassExample1 { public static void main(String args[]){ String s = 'Hello, This is JavaTpoint.'; //Create scanner Object and pass string in it Scanner scan = new Scanner(s); //Check if the scanner has a token System.out.println('Boolean Result: ' + scan.hasNext()); //Print the string System.out.println('String: ' +scan.nextLine()); scan.close(); System.out.println('--------Enter Your Details-------- '); Scanner in = new Scanner(System.in); System.out.print('Enter your name: '); String name = in.next(); System.out.println('Name: ' + name); System.out.print('Enter your age: '); int i = in.nextInt(); System.out.println('Age: ' + i); System.out.print('Enter your salary: '); double d = in.nextDouble(); System.out.println('Salary: ' + d); in.close(); } }
Produksjon:
Boolean Result: true String: Hello, This is JavaTpoint. -------Enter Your Details--------- Enter your name: Abhishek Name: Abhishek Enter your age: 23 Age: 23 Enter your salary: 25000 Salary: 25000.0
Eksempel 3
import java.util.*; public class ScannerClassExample2 { public static void main(String args[]){ String str = 'Hello/This is JavaTpoint/My name is Abhishek.'; //Create scanner with the specified String Object Scanner scanner = new Scanner(str); System.out.println('Boolean Result: '+scanner.hasNextBoolean()); //Change the delimiter of this scanner scanner.useDelimiter('/'); //Printing the tokenized Strings System.out.println('---Tokenizes String---'); while(scanner.hasNext()){ System.out.println(scanner.next()); } //Display the new delimiter System.out.println('Delimiter used: ' +scanner.delimiter()); scanner.close(); } }
Produksjon:
Boolean Result: false ---Tokenizes String--- Hello This is JavaTpoint My name is Abhishek. Delimiter used: /