Scannerklassen i Java findes i pakken java.util. Java giver forskellige måder at læse input fra tastaturet på, java.util.Scanner-klassen er en af dem.
Java Scanner-klassen opdeler input i tokens ved hjælp af en afgrænsningstegn, som er blanktegn som standard. Det giver mange metoder til at læse og analysere forskellige primitive værdier.
Java Scanner-klassen er meget brugt til at parse tekst for strenge og primitive typer ved hjælp af et regulært udtryk. Det er den nemmeste måde at få input i Java. Ved hjælp af Scanner i Java kan vi få input fra brugeren i primitive typer som int, long, double, byte, float, short osv.
Java Scanner-klassen udvider Object-klassen og implementerer Iterator- og Closeable-grænseflader.
Java Scanner-klassen giver nextXXX() metoder til at returnere værditypen, såsom nextInt(), nextByte(), nextShort(), next(), nextLine(), nextDouble(), nextFloat(), nextBoolean() osv. For at få et enkelt tegn fra scanneren, kan du kalde next().charAt(0) metoden, som returnerer et enkelt tegn.
Java-scannerklasseerklæring
public final class Scanner extends Object implements Iterator
Sådan får du Java-scanner
For at få instansen af Java Scanner, som læser input fra brugeren, skal vi sende inputstrømmen (System.in) i konstruktøren af Scanner-klassen. For eksempel:
Scanner in = new Scanner(System.in);
For at få instansen af Java Scanner, som parser strengene, skal vi videregive strengene i konstruktøren af Scanner-klassen. For eksempel:
Scanner in = new Scanner('Hello Javatpoint');
Java Scanner Class Constructors
SN | Konstruktør | Beskrivelse |
---|---|---|
1) | Scanner (filkilde) | Den konstruerer en ny scanner, der producerer værdier scannet fra den angivne fil. |
2) | Scanner (Filkilde, String CharsetName) | Den konstruerer en ny scanner, der producerer værdier scannet fra den angivne fil. |
3) | Scanner (InputStream-kilde) | Den konstruerer en ny scanner, der producerer værdier scannet fra den angivne inputstrøm. |
4) | Scanner (InputStream-kilde, String charsetName) | Den konstruerer en ny scanner, der producerer værdier scannet fra den angivne inputstrøm. |
5) | Scanner (læsbar kilde) | Den konstruerer en ny scanner, der producerer værdier scannet fra den angivne kilde. |
6) | Scanner (strengkilde) | Den konstruerer en ny scanner, der producerer værdier scannet fra den angivne streng. |
7) | Scanner (ReadableByteChannel-kilde) | Den konstruerer en ny scanner, der producerer værdier scannet fra den angivne kanal. |
8) | Scanner (ReadableByteChannel source, String charsetName) | Den konstruerer en ny scanner, der producerer værdier scannet fra den angivne kanal. |
9) | Scanner (stikilde) | Den konstruerer en ny scanner, der producerer værdier scannet fra den angivne fil. |
10) | Scanner (stikilde, strengtegnsætnavn) | Den konstruerer en ny scanner, der producerer værdier scannet fra den angivne fil. |
Java-scannerklassemetoder
Følgende er listen over scannermetoder:
SN | Modifikator og type | Metode | Beskrivelse |
---|---|---|---|
1) | ugyldig | tæt() | Den bruges til at lukke denne scanner. |
2) | mønster | afgrænser() | Det bruges til at få det mønster, som Scanner-klassen i øjeblikket bruger til at matche afgrænsere. |
3) | Strøm | findAll() | Det bruges til at finde en strøm af matchresultater, der matcher den angivne mønsterstreng. |
4) | Snor | findInLine() | Det bruges til at finde den næste forekomst af et mønster, der er konstrueret ud fra den angivne streng, og ignorerer skilletegn. |
5) | snor | findWithinHorizon() | Det bruges til at finde den næste forekomst af et mønster, der er konstrueret ud fra den angivne streng, og ignorerer skilletegn. |
6) | boolesk | hasNext() | Det returnerer sandt, hvis denne scanner har et andet token i sin input. |
7) | boolesk | hasNextBigDecimal() | Det bruges til at kontrollere, om det næste token i denne scanners input kan fortolkes som en BigDecimal ved hjælp af nextBigDecimal() metoden eller ej. |
8) | boolesk | hasNextBigInteger() | Det bruges til at kontrollere, om det næste token i denne scanners input kan fortolkes som en BigDecimal ved hjælp af nextBigDecimal() metoden eller ej. |
9) | boolesk | hasNextBoolean() | Det bruges til at kontrollere, om det næste token i denne scanners input kan fortolkes som en Boolean ved hjælp af nextBoolean() metoden eller ej. |
10) | boolesk | hasNextByte() | Det bruges til at kontrollere, om det næste token i denne scanners input kan fortolkes som en byte ved hjælp af metoden nextBigDecimal() eller ej. |
elleve) | boolesk | hasNextDouble() | Det bruges til at kontrollere, om det næste token i denne scanners input kan fortolkes som en BigDecimal ved hjælp af nextByte() metoden eller ej. |
12) | boolesk | hasNextFloat() | Det bruges til at kontrollere, om det næste token i denne scanners input kan fortolkes som en Float ved hjælp af nextFloat() metoden eller ej. |
13) | boolesk | hasNextInt() | Det bruges til at kontrollere, om det næste token i denne scanners input kan fortolkes som en int ved hjælp af nextInt() metoden eller ej. |
14) | boolesk | hasNextLine() | Den bruges til at kontrollere, om der er en anden linje i indgangen på denne scanner eller ej. |
femten) | boolesk | hasNextLong() | Det bruges til at kontrollere, om det næste token i denne scanners input kan fortolkes som en Long ved at bruge metoden nextLong() eller ej. |
16) | boolesk | hasNextShort() | Det bruges til at kontrollere, om det næste token i denne scanners input kan fortolkes som en Short ved hjælp af nextShort() metoden eller ej. |
17) | IOException | ioException() | Det bruges til at få IOException sidst kastet af denne scanner til at læse. |
18) | Lokal | lokal() | Det bruges til at få en lokalitet for Scanner-klassen. |
19) | MatchResultat | match() | Den bruges til at få matchresultatet af den sidste scanningsoperation udført af denne scanner. |
tyve) | Snor | Næste() | Det bruges til at hente det næste komplette token fra den scanner, som er i brug. |
enogtyve) | BigDecimal | nextBigDecimal() | Den scanner det næste token af input som en BigDecimal. |
22) | Stort heltal | nextBigInteger() | Den scanner det næste token af input som et BigInteger. |
23) | boolesk | nextBoolean() | Den scanner det næste token af input til en boolesk værdi og returnerer denne værdi. |
24) | byte | nextByte() | Den scanner det næste token af input som en byte. |
25) | dobbelt | nextDouble() | Den scanner det næste token af input som en dobbelt. |
26) | flyde | nextFloat() | Den scanner det næste token af input som en flyder. |
27) | int | nextInt() | Den scanner det næste token af input som en Int. |
28) | Snor | næste linje() | Den bruges til at hente den inputstreng, der blev sprunget over af Scanner-objektet. |
29) | lang | nextLong() | Den scanner det næste token af input som en lang. |
30) | kort | nextShort() | Den scanner det næste token af input som en kort. |
31) | int | radix() | Det bruges til at få standardradixen for scannerens brug. |
32) | ugyldig | fjerne() | Det bruges, når fjernelsesoperationen ikke understøttes af denne implementering af Iterator. |
33) | Scanner | Nulstil() | Den bruges til at nulstille den scanner, der er i brug. |
3. 4) | Scanner | springe() | Den springer input over, der matcher det angivne mønster, og ignorerer afgrænsningstegn |
35) | Strøm | tokens() | Det bruges til at hente en strøm af afgrænser-separerede tokens fra scannerobjektet, som er i brug. |
36) | Snor | toString() | Det bruges til at få strengrepræsentationen af Scanner ved hjælp af. |
37) | Scanner | useDelimiter() | Den bruges til at indstille afgrænsningsmønsteret for den scanner, som er i brug, til det angivne mønster. |
38) | Scanner | useLocale() | Den bruges til at indstille denne scanners lokalitetsobjekt til den angivne lokalitet. |
39) | Scanner | useRadix() | Den bruges til at indstille standardradiksen for den scanner, som er i brug, til den angivne radix. |
Eksempel 1
Lad os se et simpelt eksempel på Java Scanner, hvor vi får et enkelt input fra brugeren. Her beder vi om en streng gennem 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(); } }
Produktion:
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(); } }
Produktion:
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(); } }
Produktion:
Boolean Result: false ---Tokenizes String--- Hello This is JavaTpoint My name is Abhishek. Delimiter used: /