In deze tutorial leren we met behulp van voorbeelden over de Java Scanner en zijn methoden.
De Scanner
klasse van het java.util
pakket wordt gebruikt om invoergegevens uit verschillende bronnen te lezen, zoals invoerstromen, gebruikers, bestanden, enz. Laten we een voorbeeld nemen.
Voorbeeld 1: lees een regel tekst met de scanner
import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter your name: "); // takes input from the keyboard String name = input.nextLine(); // prints the name System.out.println("My name is " + name); // closes the scanner input.close(); ) )
Uitvoer
Voer je naam in: Kelvin Mijn naam is Kelvin
Let in het bovenstaande voorbeeld op de lijn
Scanner input = new Scanner(System.in);
Hier hebben we een object met Scanner
benoemde invoer gemaakt.
De System.in
parameter wordt gebruikt om input te krijgen van de standaardinvoer. Het werkt net als invoer van het toetsenbord.
We hebben vervolgens de nextLine()
methode van de Scanner
klas gebruikt om een regel tekst van de gebruiker te lezen.
Nu je er een idee van hebt Scanner
, laten we er meer over onderzoeken.
Scannerklasse importeren
Zoals we in het bovenstaande voorbeeld kunnen zien, moeten we het java.util.Scanner
pakket importeren voordat we de Scanner
klasse kunnen gebruiken .
import java.util.Scanner;
Bezoek Java-pakketten voor meer informatie over het importeren van pakketten.
Maak een scannerobject in Java
Nadat we het pakket hebben geïmporteerd, kunnen we als volgt Scanner
objecten maken.
// read input from the input stream Scanner sc1 = new Scanner(InputStream input); // read input from files Scanner sc2 = new Scanner(File file); // read input from a string Scanner sc3 = new Scanner(String str);
Hier hebben we objecten van de Scanner
klasse gemaakt die invoer van respectievelijk InputStream, File en String zullen lezen.
Java-scannermethoden om invoer te verkrijgen
De Scanner
klasse biedt verschillende methoden waarmee we verschillende soorten invoer kunnen lezen.
Methode | Omschrijving |
---|---|
nextInt() | leest een int waarde van de gebruiker |
nextFloat() | leest een float waarde uit de gebruiker |
nextBoolean() | leest een boolean waarde van de gebruiker |
nextLine() | leest een regel tekst van de gebruiker |
next() | leest een woord van de gebruiker |
nextByte() | leest een byte waarde van de gebruiker |
nextDouble() | leest een doubl e-waarde van de gebruiker |
nextShort() | leest een short waarde van de gebruiker |
nextLong() | leest een long waarde van de gebruiker |
Voorbeeld 2: Java Scanner nextInt ()
import java.util.Scanner; class Main ( public static void main(String() args) ( // creates a Scanner object Scanner input = new Scanner(System.in); System.out.println("Enter an integer: "); // reads an int value int data1 = input.nextInt(); System.out.println("Using nextInt(): " + data1); input.close(); ) )
Uitvoer
Voer een geheel getal in: 22 Met nextInt (): 22
In het bovenstaande voorbeeld hebben we de nextInt()
methode gebruikt om een geheel getal te lezen.
Voorbeeld 3: Java Scanner nextDouble ()
import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter Double value: "); // reads the double value double value = input.nextDouble(); System.out.println("Using nextDouble(): " + value); input.close(); ) )
Uitvoer
Voer dubbele waarde in: 33.33 Gebruik van nextDouble (): 33.33
In het bovenstaande voorbeeld hebben we de nextDouble()
methode gebruikt om een drijvende-kommawaarde te lezen.
Voorbeeld 4: Java Scanner next ()
import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter your name: "); // reads the entire word String value = input.next(); System.out.println("Using next(): " + value); input.close(); ) )
Uitvoer
Voer je naam in: Jonny Walker Gebruik volgende (): Jonny
In het bovenstaande voorbeeld hebben we de next()
methode gebruikt om een string van de gebruiker te lezen.
Hier hebben we de volledige naam opgegeven. De next()
methode leest echter alleen de voornaam.
Dit komt doordat de next()
methode invoer tot aan het witruimteteken leest . Zodra de witruimte wordt aangetroffen, wordt de tekenreeks geretourneerd (exclusief de witruimte).
Voorbeeld 5: Java Scanner nextLine ()
import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter your name: "); // reads the entire line String value = input.nextLine(); System.out.println("Using nextLine(): " + value); input.close(); ) )
Uitvoer
Voer uw naam in: Jonny Walker Met nextLine (): Jonny Walker
In het eerste voorbeeld hebben we de nextLine()
methode gebruikt om een string van de gebruiker te lezen.
In tegenstelling tot next()
, nextLine()
leest de methode de volledige invoerregel inclusief spaties. De werkwijze wordt beëindigd wanneer zij tegenkomt een volgende regel karakter .
Recommended Reading: Java Scanner skipping the nextLine().
Java Scanner with BigInteger and BigDecimal
Java scanner can also be used to read the big integer and big decimal numbers.
- nextBigInteger() - reads the big integer value from the user
- nextBigDecimal() - reads the big decimal value from the user
Example 4: Read BigInteger and BigDecimal
import java.math.BigDecimal; import java.math.BigInteger; import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter a big integer: "); // reads the big integer BigInteger value1 = input.nextBigInteger(); System.out.println("Using nextBigInteger(): " + value1); System.out.print("Enter a big decimal: "); // reads the big decimal BigDecimal value2 = input.nextBigDecimal(); System.out.println("Using nextBigDecimal(): " + value2); input.close(); ) )
Output
Enter a big integer: 987654321 Using nextBigInteger(): 987654321 Enter a big decimal: 9.55555 Using nextBigDecimal(): 9.55555
In the above example, we have used the java.math.BigInteger
and java.math.BigDecimal
package to read BigInteger
and BigDecimal
respectively.
Working of Java Scanner
De Scanner
klas leest een hele regel en verdeelt de regel in tokens. Tokens zijn kleine elementen die een betekenis hebben voor de Java-compiler. Bijvoorbeeld,
Stel dat er een invoerstring is:
He is 22
In dit geval leest het scannerobject de hele regel en verdeelt het de string in tokens: " He ", " is " en " 22 ". Het object itereert vervolgens over elk token en leest elk token met behulp van zijn verschillende methoden.
Opmerking : standaard wordt witruimte gebruikt om tokens te verdelen.