Java-scannerklasse
Java Scanner-klasse
In deze tutorial leren we over de Java Scanner en zijn methoden aan de hand van voorbeelden.
De Scanner
klasse van de java.util
pakket wordt gebruikt om invoergegevens uit verschillende bronnen te lezen, zoals invoerstromen, gebruikers, bestanden, enz. Laten we een voorbeeld nemen.
Voorbeeld 1:een regel tekst lezen 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
Enter your name: Kelvin My name is Kelvin
Let in het bovenstaande voorbeeld op de regel
Scanner input = new Scanner(System.in);
Hier hebben we een object gemaakt van Scanner
genaamd invoer .
De System.in
parameter wordt gebruikt om invoer te krijgen van de standaardinvoer. Het werkt net als invoer van het toetsenbord.
We hebben toen de nextLine()
. gebruikt methode van de Scanner
class om een regel tekst van de gebruiker te lezen.
Nu je een idee hebt over Scanner
, laten we er meer over ontdekken.
Scannerklasse importeren
Zoals we in het bovenstaande voorbeeld kunnen zien, moeten we de java.util.Scanner
. importeren pakket voordat we de Scanner
. kunnen gebruiken klasse.
import java.util.Scanner;
Ga voor meer informatie over het importeren van pakketten naar Java-pakketten.
Maak een scannerobject in Java
Nadat we het pakket hebben geïmporteerd, kunnen we als volgt Scanner
. maken objecten.
// 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 gemaakt van de Scanner
klasse die invoer van respectievelijk InputStream, File en String leest.
Java-scannermethoden om invoer te nemen
De Scanner
class biedt verschillende methoden waarmee we invoer van verschillende typen kunnen lezen.
Methode | Beschrijving |
---|---|
nextInt() | leest een int waarde van de gebruiker |
nextFloat() | leest een float waarde van 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
Enter an integer: 22 Using nextInt(): 22
In het bovenstaande voorbeeld hebben we de nextInt()
. gebruikt methode 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
Enter Double value: 33.33 Using nextDouble(): 33.33
In het bovenstaande voorbeeld hebben we de nextDouble()
. gebruikt methode 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
Enter your name: Jonny Walker Using next(): Jonny
In het bovenstaande voorbeeld hebben we de next()
. gebruikt methode om een string van de gebruiker te lezen.
Hier hebben we de volledige naam gegeven. Echter, de next()
methode leest alleen de voornaam.
Dit komt omdat de next()
methode leest invoer tot aan de witruimte karakter. Zodra de witruimte wordt aangetroffen, retourneert het de tekenreeks (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
Enter your name: Jonny Walker Using nextLine(): Jonny Walker
In het eerste voorbeeld hebben we de nextLine()
. gebruikt methode om een string van de gebruiker te lezen.
In tegenstelling tot next()
, de nextLine()
methode leest de hele invoerregel inclusief spaties. De methode wordt beëindigd wanneer deze een teken op de volgende regel tegenkomt, \n
.
Aanbevolen literatuur: Java Scanner slaat de nextLine() over.
Java-scanner met BigInteger en BigDecimal
Java-scanner kan ook worden gebruikt om grote gehele getallen en grote decimalen te lezen.
- nextBigInteger() - leest de grote integerwaarde van de gebruiker
- nextBigDecimal() - leest de grote decimale waarde van de gebruiker
Voorbeeld 4:lees BigInteger en 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();
}
}
Uitvoer
Enter a big integer: 987654321 Using nextBigInteger(): 987654321 Enter a big decimal: 9.55555 Using nextBigDecimal(): 9.55555
In het bovenstaande voorbeeld hebben we de java.math.BigInteger
. gebruikt en java.math.BigDecimal
pakket om BigInteger
te lezen en BigDecimal
respectievelijk.
Werking van Java Scanner
De Scanner
class leest een hele regel en verdeelt de regel in tokens. Tokens zijn kleine elementen die enige betekenis hebben voor de Java-compiler. Bijvoorbeeld,
Stel dat er een invoertekenreeks is:
He is 22
In dit geval leest het scannerobject de hele regel en verdeelt de string in tokens:"Hij ", "is " en "22 ". Het object herhaalt vervolgens elk token en leest elk token met behulp van zijn verschillende methoden.
Opmerking :Standaard wordt witruimte gebruikt om tokens te verdelen.
Java