Σε αυτό το σεμινάριο, θα μάθουμε για το Java Scanner και τις μεθόδους του με τη βοήθεια παραδειγμάτων.
Η Scanner
κλάση του java.util
πακέτου χρησιμοποιείται για την ανάγνωση δεδομένων εισόδου από διαφορετικές πηγές όπως ροές εισόδου, χρήστες, αρχεία κ.λπ. Ας πάρουμε ένα παράδειγμα.
Παράδειγμα 1: Διαβάστε μια γραμμή κειμένου χρησιμοποιώντας σαρωτή
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(); ) )
Παραγωγή
Πληκτρολογήστε το όνομά σας: Kelvin Το όνομά μου είναι Kelvin
Στο παραπάνω παράδειγμα, παρατηρήστε τη γραμμή
Scanner input = new Scanner(System.in);
Εδώ, δημιουργήσαμε ένα αντικείμενο με την Scanner
ονομασία input.
Η System.in
παράμετρος χρησιμοποιείται για τη λήψη εισόδου από την τυπική είσοδο. Λειτουργεί όπως η λήψη εισόδων από το πληκτρολόγιο.
Στη συνέχεια, χρησιμοποιήσαμε τη nextLine()
μέθοδο της Scanner
τάξης για να διαβάσουμε μια γραμμή κειμένου από τον χρήστη.
Τώρα που έχετε κάποια ιδέα Scanner
, ας εξερευνήσουμε περισσότερα για αυτό.
Εισαγωγή κλάσης σαρωτή
Όπως μπορούμε να δούμε από το παραπάνω παράδειγμα, πρέπει να εισαγάγουμε το java.util.Scanner
πακέτο για να μπορέσουμε να χρησιμοποιήσουμε την Scanner
τάξη.
import java.util.Scanner;
Για να μάθετε περισσότερα σχετικά με την εισαγωγή πακέτων, επισκεφθείτε τα Πακέτα Java.
Δημιουργήστε ένα αντικείμενο σαρωτή στην Java
Μόλις εισαγάγουμε το πακέτο, εδώ είναι πώς μπορούμε να δημιουργήσουμε Scanner
αντικείμενα.
// 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);
Εδώ, έχουμε δημιουργήσει αντικείμενα της Scanner
κλάσης που θα διαβάζουν εισόδους από InputStream, File και String αντίστοιχα.
Μέθοδοι σαρωτή Java για λήψη δεδομένων
Η Scanner
τάξη παρέχει διάφορες μεθόδους που μας επιτρέπουν να διαβάζουμε εισόδους διαφορετικών τύπων.
Μέθοδος | Περιγραφή |
---|---|
nextInt() | διαβάζει μια int τιμή από τον χρήστη |
nextFloat() | διαβάζει μια float τιμή από τον χρήστη |
nextBoolean() | διαβάζει μια boolean τιμή από τον χρήστη |
nextLine() | διαβάζει μια γραμμή κειμένου από τον χρήστη |
next() | διαβάζει μια λέξη από τον χρήστη |
nextByte() | διαβάζει μια byte τιμή από τον χρήστη |
nextDouble() | διαβάζει μια doubl τιμή e από τον χρήστη |
nextShort() | διαβάζει μια short τιμή από τον χρήστη |
nextLong() | διαβάζει μια long τιμή από τον χρήστη |
Παράδειγμα 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(); ) )
Παραγωγή
Εισαγάγετε έναν ακέραιο αριθμό: 22 Χρησιμοποιώντας nextInt (): 22
Στο παραπάνω παράδειγμα, χρησιμοποιήσαμε τη nextInt()
μέθοδο για να διαβάσουμε μια ακέραια τιμή.
Παράδειγμα 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(); ) )
Παραγωγή
Εισαγάγετε Διπλή τιμή: 33.33 Χρήση του NextDouble (): 33.33
Στο παραπάνω παράδειγμα, χρησιμοποιήσαμε τη nextDouble()
μέθοδο για να διαβάσουμε μια τιμή κυμαινόμενου σημείου.
Παράδειγμα 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(); ) )
Παραγωγή
Πληκτρολογήστε το όνομά σας: Jonny Walker Χρησιμοποιώντας το επόμενο (): Jonny
Στο παραπάνω παράδειγμα, χρησιμοποιήσαμε τη next()
μέθοδο για να διαβάσουμε μια συμβολοσειρά από τον χρήστη.
Εδώ, δώσαμε το πλήρες όνομα. Ωστόσο, η next()
μέθοδος διαβάζει μόνο το όνομα.
Αυτό συμβαίνει επειδή η next()
μέθοδος διαβάζει την είσοδο έως το χαρακτήρα του διαστήματος . Μόλις συναντήσετε το κενό διάστημα , επιστρέφει τη συμβολοσειρά (εκτός από το κενό διάστημα).
Παράδειγμα 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(); ) )
Παραγωγή
Πληκτρολογήστε το όνομά σας: Jonny Walker Using nextLine (): Jonny Walker
Στο πρώτο παράδειγμα, χρησιμοποιήσαμε τη nextLine()
μέθοδο για την ανάγνωση μιας συμβολοσειράς από τον χρήστη.
Αντίθετα next()
, η nextLine()
μέθοδος διαβάζει ολόκληρη τη γραμμή εισόδου συμπεριλαμβανομένων των κενών. Η μέθοδος τερματίζεται όταν συναντά ένα επόμενο χαρακτήρα γραμμή, .
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
Η Scanner
τάξη διαβάζει μια ολόκληρη γραμμή και χωρίζει τη γραμμή σε μάρκες. Τα διακριτικά είναι μικρά στοιχεία που έχουν κάποια σημασία για τον μεταγλωττιστή Java. Για παράδειγμα,
Ας υποθέσουμε ότι υπάρχει μια συμβολοσειρά εισόδου:
He is 22
Σε αυτήν την περίπτωση, το αντικείμενο του σαρωτή θα διαβάσει ολόκληρη τη γραμμή και θα διαιρέσει τη συμβολοσειρά σε διακριτικά: " Αυτός ", " είναι " και " 22 ". Στη συνέχεια, το αντικείμενο επαναλαμβάνεται σε κάθε διακριτικό και διαβάζει κάθε διακριτικό χρησιμοποιώντας τις διαφορετικές του μεθόδους.
Σημείωση : Από προεπιλογή, το κενό διάστημα χρησιμοποιείται για τη διαίρεση των διακριτικών.