Java Scanner (με παραδείγματα)

Σε αυτό το σεμινάριο, θα μάθουμε για το 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 ". Στη συνέχεια, το αντικείμενο επαναλαμβάνεται σε κάθε διακριτικό και διαβάζει κάθε διακριτικό χρησιμοποιώντας τις διαφορετικές του μεθόδους.

Σημείωση : Από προεπιλογή, το κενό διάστημα χρησιμοποιείται για τη διαίρεση των διακριτικών.

ενδιαφέροντα άρθρα...