Die Scannerklasse in Java befindet sich im Paket java.util. Java bietet verschiedene Möglichkeiten, Eingaben über die Tastatur zu lesen, die Klasse java.util.Scanner ist eine davon.
Die Java-Scanner-Klasse unterteilt die Eingabe mithilfe eines Trennzeichens, bei dem es sich standardmäßig um Leerzeichen handelt, in Token. Es bietet viele Methoden zum Lesen und Analysieren verschiedener Grundwerte.
Die Java-Scanner-Klasse wird häufig zum Analysieren von Text nach Zeichenfolgen und primitiven Typen mithilfe eines regulären Ausdrucks verwendet. Dies ist der einfachste Weg, Eingaben in Java zu erhalten. Mithilfe des Scanners in Java können wir vom Benutzer Eingaben in primitiven Typen wie int, long, double, byte, float, short usw. erhalten.
privates vs. öffentliches Java
Die Java-Scanner-Klasse erweitert die Object-Klasse und implementiert Iterator- und Closeable-Schnittstellen.
Die Java-Scanner-Klasse bietet nextXXX()-Methoden zur Rückgabe des Werttyps wie nextInt(), nextByte(), nextShort(), next(), nextLine(), nextDouble(), nextFloat(), nextBoolean() usw Um ein einzelnes Zeichen vom Scanner abzurufen, können Sie die Methode next().charAt(0) aufrufen, die ein einzelnes Zeichen zurückgibt.
Deklaration der Java-Scanner-Klasse
public final class Scanner extends Object implements Iterator
So erhalten Sie den Java-Scanner
Um die Instanz von Java Scanner zu erhalten, die Eingaben vom Benutzer liest, müssen wir den Eingabestream (System.in) im Konstruktor der Scanner-Klasse übergeben. Zum Beispiel:
Scanner in = new Scanner(System.in);
Um die Instanz von Java Scanner zu erhalten, die die Zeichenfolgen analysiert, müssen wir die Zeichenfolgen im Konstruktor der Scanner-Klasse übergeben. Zum Beispiel:
Scanner in = new Scanner('Hello Javatpoint');
Konstruktoren der Java-Scanner-Klasse
SN | Konstrukteur | Beschreibung |
---|---|---|
1) | Scanner (Dateiquelle) | Es erstellt einen neuen Scanner, der aus der angegebenen Datei gescannte Werte erzeugt. |
2) | Scanner(Dateiquelle, String charsetName) | Es erstellt einen neuen Scanner, der aus der angegebenen Datei gescannte Werte erzeugt. |
3) | Scanner (InputStream-Quelle) | Es erstellt einen neuen Scanner, der aus dem angegebenen Eingabestream gescannte Werte erzeugt. |
4) | Scanner(InputStream-Quelle, String charsetName) | Es erstellt einen neuen Scanner, der aus dem angegebenen Eingabestream gescannte Werte erzeugt. |
5) | Scanner (Lesbare Quelle) | Es erstellt einen neuen Scanner, der von der angegebenen Quelle gescannte Werte erzeugt. |
6) | Scanner (String-Quelle) | Es erstellt einen neuen Scanner, der aus der angegebenen Zeichenfolge gescannte Werte erzeugt. |
7) | Scanner (ReadableByteChannel-Quelle) | Es erstellt einen neuen Scanner, der vom angegebenen Kanal gescannte Werte erzeugt. |
8) | Scanner(ReadableByteChannel-Quelle, String charsetName) | Es erstellt einen neuen Scanner, der vom angegebenen Kanal gescannte Werte erzeugt. |
9) | Scanner (Pfadquelle) | Es erstellt einen neuen Scanner, der aus der angegebenen Datei gescannte Werte erzeugt. |
10) | Scanner(Pfadquelle, String charsetName) | Es erstellt einen neuen Scanner, der aus der angegebenen Datei gescannte Werte erzeugt. |
Methoden der Java-Scanner-Klasse
Im Folgenden finden Sie eine Liste der Scannermethoden:
SN | Modifikator und Typ | Methode | Beschreibung |
---|---|---|---|
1) | Leere | schließen() | Es wird verwendet, um diesen Scanner zu schließen. |
2) | Muster | Trennzeichen() | Es wird verwendet, um das Muster abzurufen, das die Scanner-Klasse derzeit zum Abgleichen von Trennzeichen verwendet. |
3) | Strom | finde alle() | Es wird verwendet, um einen Stream von Übereinstimmungsergebnissen zu finden, die mit der bereitgestellten Musterzeichenfolge übereinstimmen. |
4) | Zeichenfolge | findInLine() | Es wird verwendet, um das nächste Vorkommen eines Musters zu finden, das aus der angegebenen Zeichenfolge erstellt wurde, wobei Trennzeichen ignoriert werden. |
5) | Zeichenfolge | findWithinHorizon() | Es wird verwendet, um das nächste Vorkommen eines Musters zu finden, das aus der angegebenen Zeichenfolge erstellt wurde, wobei Trennzeichen ignoriert werden. |
6) | Boolescher Wert | hasNext() | Es gibt „true“ zurück, wenn dieser Scanner ein anderes Token in seiner Eingabe hat. |
7) | Boolescher Wert | hasNextBigDecimal() | Es wird verwendet, um zu prüfen, ob das nächste Token in der Eingabe dieses Scanners mit der Methode nextBigDecimal() als BigDecimal interpretiert werden kann oder nicht. |
8) | Boolescher Wert | hasNextBigInteger() | Es wird verwendet, um zu prüfen, ob das nächste Token in der Eingabe dieses Scanners mit der Methode nextBigDecimal() als BigDecimal interpretiert werden kann oder nicht. |
9) | Boolescher Wert | hasNextBoolean() | Es wird verwendet, um zu prüfen, ob das nächste Token in der Eingabe dieses Scanners mit der Methode nextBoolean() als Boolean interpretiert werden kann oder nicht. |
10) | Boolescher Wert | hasNextByte() | Es wird verwendet, um zu prüfen, ob das nächste Token in der Eingabe dieses Scanners mit der Methode nextBigDecimal() als Byte interpretiert werden kann oder nicht. |
elf) | Boolescher Wert | hasNextDouble() | Es wird verwendet, um zu prüfen, ob das nächste Token in der Eingabe dieses Scanners mit der nextByte()-Methode als BigDecimal interpretiert werden kann oder nicht. |
12) | Boolescher Wert | hasNextFloat() | Es wird verwendet, um zu prüfen, ob das nächste Token in der Eingabe dieses Scanners mit der Methode nextFloat() als Float interpretiert werden kann oder nicht. |
13) | Boolescher Wert | hasNextInt() | Es wird verwendet, um zu prüfen, ob das nächste Token in der Eingabe dieses Scanners mit der Methode nextInt() als int interpretiert werden kann oder nicht. |
14) | Boolescher Wert | hasNextLine() | Es wird verwendet, um zu prüfen, ob sich im Eingang dieses Scanners eine weitere Zeile befindet oder nicht. |
fünfzehn) | Boolescher Wert | hasNextLong() | Es wird verwendet, um zu prüfen, ob das nächste Token in der Eingabe dieses Scanners mit der Methode nextLong() als Long interpretiert werden kann oder nicht. |
16) | Boolescher Wert | hasNextShort() | Es wird verwendet, um zu prüfen, ob der nächste Token in der Eingabe dieses Scanners mit der Methode nextShort() als Short interpretiert werden kann oder nicht. |
17) | IOException | ioException() | Es wird verwendet, um die zuletzt von diesem Scanner ausgelöste IOException lesbar abzurufen. |
18) | Lokal | lokal() | Es wird verwendet, um ein Gebietsschema der Scanner-Klasse abzurufen. |
19) | MatchResult | übereinstimmen() | Es wird verwendet, um das Übereinstimmungsergebnis des letzten von diesem Scanner durchgeführten Scanvorgangs abzurufen. |
zwanzig) | Zeichenfolge | nächste() | Es wird verwendet, um den nächsten vollständigen Token vom verwendeten Scanner abzurufen. |
einundzwanzig) | BigDecimal | nextBigDecimal() | Es scannt das nächste Token der Eingabe als BigDecimal. |
22) | BigInteger | nextBigInteger() | Es scannt das nächste Token der Eingabe als BigInteger. |
23) | Boolescher Wert | nextBoolean() | Es scannt das nächste Token der Eingabe in einen booleschen Wert und gibt diesen Wert zurück. |
24) | Byte | nextByte() | Es scannt das nächste Token der Eingabe als Byte. |
25) | doppelt | nextDouble() | Es scannt den nächsten Token der Eingabe als Double. |
26) | schweben | nextFloat() | Es scannt das nächste Token der Eingabe als Float. |
27) | int | nextInt() | Es scannt das nächste Token der Eingabe als Int. |
28) | Zeichenfolge | nächste Zeile() | Es wird verwendet, um die Eingabezeichenfolge abzurufen, die vom Scanner-Objekt übersprungen wurde. |
29) | lang | nextLong() | Es scannt das nächste Token der Eingabe als Long. |
30) | kurz | nextShort() | Es scannt den nächsten Token der Eingabe als Kurzschluss. |
31) | int | radix() | Es wird verwendet, um die Standardbasis der Scannerverwendung abzurufen. |
32) | Leere | entfernen() | Es wird verwendet, wenn der Entfernungsvorgang von dieser Implementierung von Iterator nicht unterstützt wird. |
33) | Scanner | zurücksetzen() | Es wird verwendet, um den verwendeten Scanner zurückzusetzen. |
3. 4) | Scanner | überspringen() | Es überspringt Eingaben, die dem angegebenen Muster entsprechen, und ignoriert Trennzeichen |
35) | Strom | Token() | Es wird verwendet, um einen Strom von durch Trennzeichen getrennten Token vom verwendeten Scanner-Objekt abzurufen. |
36) | Zeichenfolge | toString() | Es wird verwendet, um die Zeichenfolgendarstellung des Scanners abzurufen. |
37) | Scanner | useDelimiter() | Es wird verwendet, um das Begrenzungsmuster des verwendeten Scanners auf das angegebene Muster festzulegen. |
38) | Scanner | useLocale() | Es wird verwendet, um das Gebietsschemaobjekt dieses Scanners auf das angegebene Gebietsschema festzulegen. |
39) | Scanner | useRadix() | Es wird verwendet, um die Standardbasis des verwendeten Scanners auf die angegebene Basis festzulegen. |
Beispiel 1
Sehen wir uns ein einfaches Beispiel eines Java-Scanners an, bei dem wir eine einzelne Eingabe vom Benutzer erhalten. Hier fragen wir über die Methode in.nextLine() nach einer Zeichenfolge.
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(); } }
Ausgabe:
Enter your name: sonoo jaiswal Name is: sonoo jaiswal
Beispiel 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(); } }
Ausgabe:
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
Beispiel 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(); } }
Ausgabe:
Boolean Result: false ---Tokenizes String--- Hello This is JavaTpoint My name is Abhishek. Delimiter used: /