De scannerklasse in Java is te vinden in het pakket java.util. Java biedt verschillende manieren om invoer van het toetsenbord te lezen, de klasse java.util.Scanner is daar een van.
De klasse Java Scanner verdeelt de invoer in tokens met behulp van een scheidingsteken dat standaard witruimte is. Het biedt vele methoden om verschillende primitieve waarden te lezen en te parseren.
De klasse Java Scanner wordt veel gebruikt om tekst te ontleden op tekenreeksen en primitieve typen met behulp van een reguliere expressie. Het is de eenvoudigste manier om invoer te krijgen in Java. Met behulp van Scanner in Java kunnen we input van de gebruiker krijgen in primitieve typen zoals int, long, double, byte, float, short, enz.
De Java Scanner-klasse breidt de Object-klasse uit en implementeert Iterator- en Closeable-interfaces.
De klasse Java Scanner biedt nextXXX()-methoden om het type waarde te retourneren, zoals nextInt(), nextByte(), nextShort(), next(), nextLine(), nextDouble(), nextFloat(), nextBoolean(), enz. Om één enkel teken uit de scanner te halen, kunt u de methode next().charAt(0) aanroepen, die één enkel teken retourneert.
Verklaring van Java-scannerklasse
public final class Scanner extends Object implements Iterator
Hoe Java-scanner te verkrijgen
Om het exemplaar van Java Scanner te krijgen dat de invoer van de gebruiker leest, moeten we de invoerstroom (System.in) doorgeven aan de constructor van de Scanner-klasse. Bijvoorbeeld:
netwerkbesturingssysteem
Scanner in = new Scanner(System.in);
Om de instantie van Java Scanner te krijgen die de strings parseert, moeten we de strings doorgeven in de constructor van de Scanner-klasse. Bijvoorbeeld:
Scanner in = new Scanner('Hello Javatpoint');
Constructors van Java-scannerklassen
SN | Constructeur | Beschrijving |
---|---|---|
1) | Scanner (bestandsbron) | Het bouwt een nieuwe scanner die waarden produceert die zijn gescand uit het opgegeven bestand. |
2) | Scanner (bestandsbron, tekenreeksnaam) | Het bouwt een nieuwe scanner die waarden produceert die zijn gescand uit het opgegeven bestand. |
3) | Scanner (InputStream-bron) | Het bouwt een nieuwe scanner die waarden produceert die zijn gescand uit de opgegeven invoerstroom. |
4) | Scanner (InputStream-bron, String charsetName) | Het bouwt een nieuwe scanner die waarden produceert die zijn gescand uit de opgegeven invoerstroom. |
5) | Scanner (leesbare bron) | Het bouwt een nieuwe scanner die waarden produceert die zijn gescand vanuit de opgegeven bron. |
6) | Scanner (tekenreeksbron) | Het bouwt een nieuwe scanner die waarden produceert die zijn gescand op basis van de opgegeven tekenreeks. |
7) | Scanner (ReadableByteChannel-bron) | Het bouwt een nieuwe scanner die waarden produceert die zijn gescand vanuit het opgegeven kanaal. |
8) | Scanner (ReadableByteChannel-bron, String charsetName) | Het bouwt een nieuwe scanner die waarden produceert die zijn gescand vanuit het opgegeven kanaal. |
9) | Scanner (padbron) | Het bouwt een nieuwe scanner die waarden produceert die zijn gescand uit het opgegeven bestand. |
10) | Scanner (padbron, tekenreeksnaam) | Het bouwt een nieuwe scanner die waarden produceert die zijn gescand uit het opgegeven bestand. |
Java Scanner Class-methoden
Hieronder vindt u een lijst met scannermethoden:
Java-lijstknooppunt
SN | Modificator en type | Methode | Beschrijving |
---|---|---|---|
1) | leegte | dichtbij() | Het wordt gebruikt om deze scanner te sluiten. |
2) | patroon | scheidingsteken() | Het wordt gebruikt om het patroon te verkrijgen dat de klasse Scanner momenteel gebruikt om de begrenzers te matchen. |
3) | Stroom | vind alle() | Het wordt gebruikt om een stroom wedstrijdresultaten te vinden die overeenkomen met de opgegeven patroonreeks. |
4) | Snaar | vindInLijn() | Het wordt gebruikt om het volgende exemplaar te vinden van een patroon dat is opgebouwd uit de opgegeven tekenreeks, waarbij scheidingstekens worden genegeerd. |
5) | snaar | vindBinnenHorizon() | Het wordt gebruikt om het volgende exemplaar te vinden van een patroon dat is opgebouwd uit de opgegeven tekenreeks, waarbij scheidingstekens worden genegeerd. |
6) | Booleaans | heeftVolgende() | Het retourneert waar als deze scanner een ander token in zijn invoer heeft. |
7) | Booleaans | hasNextBigDecimal() | Het wordt gebruikt om te controleren of het volgende token in de invoer van deze scanner kan worden geïnterpreteerd als een BigDecimal met behulp van de nextBigDecimal() -methode of niet. |
8) | Booleaans | hasNextBigInteger() | Het wordt gebruikt om te controleren of het volgende token in de invoer van deze scanner kan worden geïnterpreteerd als een BigDecimal met behulp van de nextBigDecimal() -methode of niet. |
9) | Booleaans | hasNextBoolean() | Het wordt gebruikt om te controleren of het volgende token in de invoer van deze scanner kan worden geïnterpreteerd als een Booleaanse waarde met behulp van de nextBoolean()-methode of niet. |
10) | Booleaans | heeftNextByte() | Het wordt gebruikt om te controleren of het volgende token in de invoer van deze scanner kan worden geïnterpreteerd als een byte met behulp van de nextBigDecimal() -methode of niet. |
elf) | Booleaans | hasNextDouble() | Het wordt gebruikt om te controleren of het volgende token in de invoer van deze scanner kan worden geïnterpreteerd als een BigDecimal met behulp van de nextByte() -methode of niet. |
12) | Booleaans | hasNextFloat() | Het wordt gebruikt om te controleren of het volgende token in de invoer van deze scanner kan worden geïnterpreteerd als een Float met behulp van de nextFloat() -methode of niet. |
13) | Booleaans | heeftVolgendeInt() | Het wordt gebruikt om te controleren of het volgende token in de invoer van deze scanner kan worden geïnterpreteerd als een int met behulp van de nextInt()-methode of niet. |
14) | Booleaans | hasNextLine() | Het wordt gebruikt om te controleren of er een andere lijn in de ingang van deze scanner zit of niet. |
vijftien) | Booleaans | heeftVolgendeLang() | Het wordt gebruikt om te controleren of het volgende token in de invoer van deze scanner kan worden geïnterpreteerd als een Long met behulp van de nextLong() -methode of niet. |
16) | Booleaans | hasNextShort() | Het wordt gebruikt om te controleren of het volgende token in de invoer van deze scanner kan worden geïnterpreteerd als een Short met behulp van de nextShort()-methode of niet. |
17) | IOUitzondering | ioException() | Het wordt gebruikt om de IOException die het laatst door deze scanner is gegenereerd leesbaar te maken. |
18) | Lokaal | lokaal() | Het wordt gebruikt om een landinstelling van de klasse Scanner op te halen. |
19) | MatchResultaat | overeenkomst() | Het wordt gebruikt om het matchresultaat te verkrijgen van de laatste scanbewerking die door deze scanner is uitgevoerd. |
twintig) | Snaar | volgende() | Het wordt gebruikt om het volgende volledige token te verkrijgen van de scanner die in gebruik is. |
eenentwintig) | GrootDecimaal | volgendeBigDecimal() | Het scant het volgende token van de invoer als een BigDecimal. |
22) | BigInteger | volgendeBigInteger() | Het scant het volgende token van de invoer als een BigInteger. |
23) | Booleaans | volgendeBoolean() | Het scant het volgende token van de invoer naar een Booleaanse waarde en retourneert die waarde. |
24) | byte | volgendeByte() | Het scant het volgende token van de invoer als een byte. |
25) | dubbele | volgendeDubbel() | Het scant het volgende token van de invoer als een dubbel. |
26) | vlot | volgendeFloat() | Het scant het volgende token van de invoer als een float. |
27) | int | volgendeInt() | Het scant het volgende token van de invoer als een Int. |
28) | Snaar | volgenderegel() | Het wordt gebruikt om de invoerreeks op te halen die is overgeslagen van het Scanner-object. |
29) | lang | volgendeLang() | Het scant het volgende token van de invoer als een long. |
30) | kort | volgendeKort() | Het scant het volgende token van de invoer als een kortsluiting. |
31) | int | radix() | Het wordt gebruikt om de standaardradix van het scannergebruik te verkrijgen. |
32) | leegte | verwijderen() | Het wordt gebruikt wanneer de verwijderbewerking niet wordt ondersteund door deze implementatie van Iterator. |
33) | Scanner | opnieuw instellen() | Het wordt gebruikt om de scanner die in gebruik is te resetten. |
3. 4) | Scanner | overslaan() | Het slaat invoer over die overeenkomt met het opgegeven patroon en negeert scheidingstekens |
35) | Stroom | Munten() | Het wordt gebruikt om een stroom door scheidingstekens gescheiden tokens op te halen van het Scanner-object dat in gebruik is. |
36) | Snaar | toString() | Het wordt gebruikt om de stringrepresentatie van Scanner te verkrijgen. |
37) | Scanner | gebruikDelimiter() | Het wordt gebruikt om het scheidingspatroon van de scanner die in gebruik is, in te stellen op het opgegeven patroon. |
38) | Scanner | gebruikLokale() | Het wordt gebruikt om het locale-object van deze scanner in te stellen op de opgegeven locale. |
39) | Scanner | gebruikRadix() | Het wordt gebruikt om de standaardradix van de scanner die in gebruik is, in te stellen op de opgegeven radix. |
voorbeeld 1
Laten we een eenvoudig voorbeeld bekijken van Java Scanner waarbij we één enkele invoer van de gebruiker krijgen. Hier vragen we om een string via de methode 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(); } }
Uitgang:
Enter your name: sonoo jaiswal Name is: sonoo jaiswal
Voorbeeld 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(); } }
Uitgang:
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
Voorbeeld 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(); } }
Uitgang:
Boolean Result: false ---Tokenizes String--- Hello This is JavaTpoint My name is Abhishek. Delimiter used: /