Πίνακας περιεχομένων:
- σε ένα πρόγραμμα, πρέπει να την εισαγάγετε. Για να το κάνετε αυτό, κωδικοποιείτε μια εντολή
- για να διαβάσετε την είσοδο από την κονσόλα, πρέπει να δηλώσετε μια μεταβλητή
- που παρατίθενται παρακάτω. Όπως μπορείτε να δείτε, ο πρωταρχικός τύπος δεδομένων έχει ξεχωριστή μέθοδο.
Βίντεο: Week 4 2025
Μέχρι την έκδοση Java 1. 5, η εισαγωγή κειμένου από το χρήστη σε ένα πρόγραμμα Java που βασίζεται σε κονσόλα δεν ήταν εύκολη. Αλλά με την Java 1. 5, μια νέα κλάση - που ονομάζεται
Scanner
- εισήχθη για να απλοποιήσει την εργασία εισόδου από τον χρήστη. Εδώ, χρησιμοποιείτε την τάξη
Scanner
για να έχετε απλές τιμές εισόδου από το χρήστη. Οι τεχνικές που παρουσιάζω εδώ χρησιμοποιούνται σε πολλά από τα προγράμματα που παρουσιάζονται στο υπόλοιπο βιβλίο.
Εάν χρησιμοποιείτε μια παλαιότερη έκδοση Java, πρέπει να το διαβάσετε, επειδή πολλά προγράμματα χρησιμοποιούν την τάξη
Scanner
.
Το παρακάτω απλό πρόγραμμα χρησιμοποιεί την τάξη
Scanner
για να διαβάσει μια τιμή ακέραιας από τον χρήστη και μετά εμφανίζει την τιμή στην κονσόλα για να επαληθεύσει ότι το πρόγραμμα έλαβε την τιμή που εισήγαγε ο χρήστης. Ακολουθεί ένα δείγμα του παραθύρου κονσόλας για αυτό το πρόγραμμα:
Πληκτρολογήστε έναν ακέραιο αριθμό: 5
Εισάγετε 5.
Το πρόγραμμα αρχίζει με την εμφάνιση του μηνύματος
Εισάγετε έναν ακέραιο αριθμό:
στην πρώτη γραμμή. Στη συνέχεια, σας περιμένει να εισάγετε έναν αριθμό. Όταν πληκτρολογείτε έναν αριθμό (όπως το 5) και πατάτε το πλήκτρο Enter, εμφανίζεται στη δεύτερη γραμμή το μήνυμα επιβεβαίωσης (
Εισάγετε 5
).
εισαγωγή java. χρήσιμο. Ερευνητής; @@ ra1
δημόσια τάξη ScannerApp
{ static Scanner sc = νέος σαρωτής (System in);
@@ ra6 δημόσιο static κενό main (String [] args)
{
Σύστημα. έξω. print ("Εισαγωγή ακέραιου αριθμού:");
@@ ra10 int x = sc. nextInt ();
@@ ra11 Σύστημα. έξω. println ("Εσείς πληκτρολογήσατε" + x + ".);
@ } Εισαγωγή της κλάσης σαρωτή σε Java
Για να μπορέσετε να χρησιμοποιήσετε την τάξη
Scanner
σε ένα πρόγραμμα, πρέπει να την εισαγάγετε. Για να το κάνετε αυτό, κωδικοποιείτε μια εντολή
εισαγωγής
στην αρχή του προγράμματος, πριν από τη δήλωση κλάσης:
εισαγωγή java. χρήσιμο. Ερευνητής;
Σημειώστε ότι οι
java
και
util
δεν είναι κεφαλαιοποιημένες, αλλά
Scanner
.
Εάν χρησιμοποιείτε άλλες κλάσεις στη java
. util
, μπορείτε να εισαγάγετε ολόκληρο το πακέτο κωδικοποιώντας την εντολή εισαγωγής
όπως αυτή:
εισαγωγή java. χρήσιμο. *;
Δηλώνοντας και δημιουργώντας ένα αντικείμενο σαρωτή σε Java
Προτού χρησιμοποιήσετε την τάξη
Scanner
για να διαβάσετε την είσοδο από την κονσόλα, πρέπει να δηλώσετε μια μεταβλητή
Scanner
της κατηγορίας
σαρωτή
. Ίσως θελήσετε να δημιουργήσετε τη μεταβλητή
Scanner
ως μεταβλητή κλάσης και να δημιουργήσετε το αντικείμενο
Scanner
στον αρχικό μεταβλητή κλάσης, όπως φαίνεται στη γραμμή 6 του προγράμματος παραπάνω:
static Scanner sc = νέος σαρωτής (System. in);
Με αυτόν τον τρόπο, μπορείτε να χρησιμοποιήσετε τη μεταβλητή
sc
σε οποιαδήποτε μέθοδο της κλάσης.
Για να δημιουργήσετε ένα αντικείμενο
Σαρωτής
, χρησιμοποιείτε τη λέξη
νέα
ακολουθούμενη από μια κλήση στον κατασκευαστή κλάσης
Scanner
. Σημειώστε ότι η τάξη
Scanner
απαιτεί μια παράμετρο που υποδεικνύει την ροή εισόδου
από την οποία προέρχεται η είσοδος. Μπορείτε να χρησιμοποιήσετε το
Σύστημα. στο εδώ για να καθορίσετε την τυποποιημένη είσοδο κονσόλας πληκτρολογίου. Εισαγωγή
Για να διαβάσετε μια τιμή εισόδου από το χρήστη, μπορείτε να χρησιμοποιήσετε μία από τις μεθόδους της κλάσης
Scanner
που παρατίθενται παρακάτω. Όπως μπορείτε να δείτε, ο πρωταρχικός τύπος δεδομένων έχει ξεχωριστή μέθοδο.
Μέθοδοι κλάσης σαρωτή που παίρνουν τιμές εισόδου
Μέθοδος
Επεξήγηση
Αναγιγνώσκει τιμή | boolean |
από το χρήστη.
|
byte nextByte ()
Διαβάζει μια τιμή
byte |
από το χρήστη.
|
double nextDouble ()
Διαβάζει μια τιμή
διπλή |
από το χρήστη.
|
float nextFloat ()
Διαβάζει μια τιμή
float |
από το χρήστη.
|
int nextInt ()
Διαβάζει μια τιμή
int |
από το χρήστη.
|
String nextLine ()
Διαβάζει μια τιμή
String |
από το χρήστη.
|
long nextGong ()
Διαβάζει μια τιμή
μακρά |
από το χρήστη.
|
short nextShort ()
Διαβάζει μια τιμή
μικρή |
από το χρήστη.
|
Παρατηρήστε στην πρώτη στήλη του πίνακα ότι κάθε καταχώριση μεθόδου αρχίζει με τον τύπο της τιμής που επιστρέφεται από τη μέθοδο. Η μέθοδος
nextInt
, για παράδειγμα, επιστρέφει μια τιμή |
int
. Επίσης, παρατηρήστε ότι κάθε μια από τις μεθόδους τελειώνει με ένα κενό σύνολο παρενθέσεων. Αυτό σημαίνει ότι αυτές οι μέθοδοι δεν απαιτούν παραμέτρους. Εάν μια μέθοδος απαιτεί παραμέτρους, οι παράμετροι παρατίθενται σε αυτές τις παρενθέσεις.
Επειδή αυτές οι μέθοδοι διαβάζουν μια τιμή από το χρήστη και επιστρέφουν την τιμή, τις χρησιμοποιείτε πιο συχνά σε δηλώσεις που εκχωρούν την τιμή σε μια μεταβλητή. Η γραμμή 11, για παράδειγμα, διαβάζει ένα
int
και την εκχωρεί σε μια μεταβλητή που ονομάζεται
x
.
Όταν εκτελείται η μέθοδος
nextInt
, το πρόγραμμα περιμένει για το χρήστη να εισαγάγει μια τιμή στο παράθυρο της κονσόλας. Για να ενημερώσετε τον χρήστη σχετικά με το είδος της εισόδου που αναμένεται από το πρόγραμμα, συνήθως πρέπει να καλέσετε το σύστημα
. έξω. εκτυπώστε τη μέθοδο
προτού καλέσετε μια μέθοδο
σαρωτή
για να λάβετε είσοδο. Η γραμμή 10 καλεί το
Σύστημα. έξω. εκτυπώστε
για να εμφανιστεί το μήνυμα
Εισάγετε έναν ακέραιο αριθμό:
στην κονσόλα. Με αυτόν τον τρόπο, ο χρήστης γνωρίζει ότι το πρόγραμμα περιμένει την είσοδο.
Εάν ο χρήστης εισαγάγει μια τιμή που δεν μπορεί να μετατραπεί στον σωστό τύπο, το πρόγραμμα διακόπτεται, πράγμα που σημαίνει ότι τερματίζεται απότομα. Καθώς το πρόγραμμα διακόπτεται, εμφανίζεται ένα κρυπτογραφικό μήνυμα σφάλματος που υποδεικνύει τι προκάλεσε την αποτυχία. Εάν εισαγάγετε
τρεις
αντί για έναν πραγματικό αριθμό, για παράδειγμα, το παράθυρο κονσόλας μοιάζει με αυτό:
Εισάγετε έναν ακέραιο αριθμό:
τρεις
Εξαίρεση στο κύριο java. χρήσιμο. InputMismatchException
στη java. χρήσιμο. Ερευνητής. throwFor (Σαρωτής. java: 819) στη java. χρήσιμο. Ερευνητής. επόμενο (Σαρωτής. java: 1431) στη java. χρήσιμο. Ερευνητής. nextInt (Σαρωτής. java: 2040)
στη java. χρήσιμο. Ερευνητής. nextInt (Σαρωτής. java: 2000)
στο ScannerApp.Αυτό το μήνυμα υποδεικνύει ότι έχει εμφανιστεί
εξαίρεση
που ονομάζεται
InputMismatchException
, πράγμα που σημαίνει ότι το πρόγραμμα αναμενόταν να δει έναν ακέραιο αριθμό, αλλά πήρε κάτι άλλο. Εάν δεν γνωρίζετε πώς να παρέχετε εξαιρέσεις όπως αυτές, έτσι ώστε το πρόγραμμα να μπορεί να εμφανίσει ένα πιο φιλικό μήνυμα και να δώσει στον χρήστη μια ακόμα φορά κατά την εισαγωγή μιας σωστής τιμής, πρέπει να αντιμετωπίσετε το γεγονός ότι εάν ο χρήστης εισάγει λανθασμένα δεδομένα, το πρόγραμμά σας συντρίβεται δυσάρεστα. Μπορείτε να αποτρέψετε την απόρριψη των nextInt
και παρόμοιων μεθόδων από τα λανθασμένα δεδομένα εισόδου χρησιμοποιώντας πρώτα μία από τις μεθόδους που αναφέρονται εδώ για να ελέγξετε την επόμενη είσοδο για να βεβαιωθείτε ότι είναι έγκυρη.
Μέθοδοι κλάσης σαρωτή που ελέγχουν για έγκυρες τιμές εισόδου
Μέθοδος
Επεξήγηση
boolean hasNextBoolean ()
true | τιμή boolean |
.
|
boolean hasNextByte ()
Επιστρέφει
true
αν η επόμενη τιμή που εισήγαγε ο χρήστης είναι έγκυρη τιμή
byte |
.
|
boolean hasNextDouble ()
Επιστρέφει
true
αν η επόμενη τιμή που εισήγαγε ο χρήστης είναι έγκυρη τιμή
διπλή |
.
|
boolean hasNextFloat ()
Επιστρέφει
true
αν η επόμενη τιμή που εισήγαγε ο χρήστης είναι έγκυρη τιμή
float |
.
|
boolean hasNextInt ()
Επιστρέφει
true
αν η επόμενη τιμή που εισήγαγε ο χρήστης είναι έγκυρη τιμή
int |
.
|
boolean hasNextLong ()
Επιστρέφει
true
αν η επόμενη τιμή που εισήγαγε ο χρήστης είναι έγκυρη τιμή
μακρά |
.
|
boolean hasNextShort ()
Επιστρέφει
true
αν η επόμενη τιμή που εισήγαγε ο χρήστης είναι έγκυρη τιμή
μικρή |
.
|