Πώς να λάβετε είσοδο από έναν χρήστη στη Java (με εικόνες)

Πίνακας περιεχομένων:

Πώς να λάβετε είσοδο από έναν χρήστη στη Java (με εικόνες)
Πώς να λάβετε είσοδο από έναν χρήστη στη Java (με εικόνες)

Βίντεο: Πώς να λάβετε είσοδο από έναν χρήστη στη Java (με εικόνες)

Βίντεο: Πώς να λάβετε είσοδο από έναν χρήστη στη Java (με εικόνες)
Βίντεο: Moses In The End Times 2024, Απρίλιος
Anonim

Όταν προγραμματίζετε σε Java ή οποιαδήποτε άλλη γλώσσα, πιθανότατα θα χρειαστεί να χρησιμοποιήσετε πληροφορίες εισόδου από έναν χρήστη. Η Java παρέχει πολλές διαφορετικές μεθόδους για τη λήψη πληροφοριών χρήστη, αλλά η πιο κοινή και ίσως η ευκολότερη εφαρμογή μέθοδος είναι η χρήση του αντικειμένου σαρωτή.

Βήματα

Μέθοδος 1 από 2: Βίντεο

1514756 1
1514756 1

Βήμα 1. Εισαγάγετε την κλάση σαρωτή

Μπορείτε είτε να επιλέξετε την εισαγωγή του

java.util. Scanner

τάξη ή ολόκληρη

java.util

πακέτο. Για να εισαγάγετε μια κλάση ή ένα πακέτο, προσθέστε μία από τις ακόλουθες γραμμές στην αρχή του κώδικα:

    εισαγωγή java.util. Scanner; // Αυτό θα εισαγάγει μόνο την κλάση σαρωτή. εισαγωγή java.util.*; // Αυτό θα εισαγάγει ολόκληρο το πακέτο java.util.

1514756 2
1514756 2

Βήμα 2. Αρχικοποιήστε ένα νέο αντικείμενο σαρωτή περνώντας το

System.in

ροή εισόδου στον κατασκευαστή.

System.in

είναι η τυπική ροή εισόδου που είναι ήδη ανοιχτή και έτοιμη να παρέχει δεδομένα εισόδου. Συνήθως αυτή η ροή αντιστοιχεί στην εισαγωγή πληκτρολογίου.

    Σαρωτής userInputScanner = νέος σαρωτής (System.in);

1514756 3
1514756 3

Βήμα 3. Διαβάστε σε διάφορα είδη δεδομένων εισόδου που εισάγει ο χρήστης

Η κλάση σαρωτή υποστηρίζει τη λήψη πρωτόγονων όπως int, byte, short, long εκτός από τη λήψη χορδών.

  • Ακολουθούν ορισμένες μέθοδοι που είναι διαθέσιμες μέσω της κλάσης Σαρωτής:

    • Διαβάστε ένα byte -

      nextByte ()

    • Διαβάστε ένα σύντομο -

      nextShort ()

    • Διαβάστε ένα int -

      nextInt ()

    • Διαβάστε πολύ -

      nextLong ()

    • Διαβάστε ένα πλωτήρα -

      nextFloat ()

    • Διαβάστε ένα διπλό -

      nextDouble ()

    • Διαβάστε ένα μπουλ -

      nextBoolean ()

    • Διαβάστε μια πλήρη σειρά -

      nextLine ()

    • Διαβάστε μια λέξη -

      Επόμενο()

  • Ακολουθεί ένα παράδειγμα προγράμματος που χρησιμοποιεί διαφορετικές μεθόδους της κλάσης σαρωτή για να λάβει διαφορετικούς τύπους εισόδου:

      εισαγωγή java.util. Scanner; public class ScannerExample {public static void main (String args) {// Έναρξη νέου σαρωτή σαρωτή userInputScanner = νέο σαρωτή (System.in); // Δοκιμή nextLine (); System.out.println ("\ nΠώς σας λένε;"); Όνομα συμβολοσειράς = userInputScanner.nextLine (); // Δοκιμή nextInt (); System.out.print ("Πόσες γάτες έχετε;"); int numberOfCats = userInputScanner.nextInt (); // Δοκιμή nextDouble (); System.out.print ("Πόσα χρήματα υπάρχουν στο πορτοφόλι σας; $"); double moneyInWallet = userInputScanner.nextDouble (); System.out.println ("\ nΓεια" + όνομα + "! Έχετε" + numberOfCats + (numberOfCats> 1; "cats": "cat") + "και $" + moneyInWallet + "στο πορτοφόλι σας. / N"); }}

Μέθοδος 2 από 2: Χειρισμός εξαιρέσεων

1514756 4
1514756 4

Βήμα 1. Χειριστείτε εξαιρέσεις εισαγωγής

Ενα

InputMismatchException

πετιέται όταν ο χρήστης εισάγει δεδομένα που δεν ταιριάζουν με τον τύπο που ζητήθηκε. Για παράδειγμα, εάν ο χρήστης εισάγει μια συμβολοσειρά όταν ζητηθεί ένα int, το πρόγραμμα θα ρίξει ένα

InputMismatchException

και έξοδο. Υπάρχουν διάφοροι τρόποι χειρισμού αυτής της εξαίρεσης και επίλυσης αυτού του προβλήματος, έτσι ώστε το πρόγραμμά σας να είναι άθικτο.

1514756 5
1514756 5

Βήμα 2. Χρησιμοποιήστε ένα μπλοκ try-catch για να χειριστείτε το

InputMismatchException

.

    εισαγωγή java.util. InputMismatchException; εισαγωγή java.util. Scanner; public class ScannerExample {public static void main (String args) {// Έναρξη νέου σαρωτή σαρωτή userInputScanner = νέο σαρωτή (System.in); // Δοκιμή nextLine (); System.out.print ("\ nΠώς σας λένε;"); Όνομα συμβολοσειράς = userInputScanner.nextLine (); // Δοκιμή nextInt (); boolean validInput = false; int numberOfCats = 0; ενώ (! validInput) {System.out.print ("Πόσες γάτες έχετε;"); δοκιμάστε {numberOfCats = userInputScanner.nextInt (); validInput = true; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} // Δοκιμή nextDouble (); validInput = false; διπλά χρήματαInWallet = 0,0; while (! validInput) {System.out.print ("Πόσα χρήματα υπάρχουν στο πορτοφόλι σας; $"); δοκιμάστε {moneyInWallet = userInputScanner.nextDouble (); userInputScanner.nextLine (); validInput = true; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} System.out.println ("\ nΓεια" + όνομα + "! Έχετε" + numberOfCats + (numberOfCats> 1; "cats": "cat") + "και $" + moneyInWallet + "στο πορτοφόλι σας. / n "); }}

  • Σημειώστε ότι πρέπει να εισαγάγουμε

    java.util. InputMismatchException

    για να χρησιμοποιήσετε το

    InputMismatchException

  • τάξη.
  • Χρησιμοποιούμε ένα βρόχο while για να κάνουμε στον χρήστη την ίδια ερώτηση μέχρι ο χρήστης να εισαγάγει τη σωστή εισαγωγή.
  • Προσθέτωντας

    userInputScanner.nextLine ();

  • στο τμήμα σύλληψης του try-catch διασφαλίζει ότι ο σαρωτής αναγνωρίζει το πάτημα του πλήκτρου "enter" από το χρήστη και λειτουργεί ως τρόπος για να διαγράψετε το buffer εισόδου.
1514756 6
1514756 6

Βήμα 3. Εναλλακτικά, κάντε την είσοδο χρήστη άθικτη λαμβάνοντας μόνο τις επόμενες γραμμές από το σαρωτή

Με αυτόν τον τρόπο, μπορούμε να διασφαλίσουμε ότι όλα όσα επιστρέφει ο σαρωτής είναι αντικείμενο συμβολοσειράς και δεν δημιουργούν εξαιρέσεις. Στη συνέχεια, για να μετατρέψουμε τις συμβολοσειρές σε ακέραιους ή διπλούς, μπορούμε να χρησιμοποιήσουμε τις κλάσεις Integer και Double wrapper.

    εισαγωγή java.util. Scanner; public class ScannerExample {public static void main (String args) {// Έναρξη νέου σαρωτή σαρωτή userInputScanner = νέο σαρωτή (System.in); // Δοκιμή nextLine (); System.out.print ("\ nΠώς σας λένε;"); Όνομα συμβολοσειράς = userInputScanner.nextLine (); // Δοκιμή nextInt (); boolean validInput = false; int numberOfCats = 0; ενώ (! validInput) {System.out.print ("Πόσες γάτες έχετε;"); String input = userInputScanner.nextLine (); δοκιμάστε {numberOfCats = Integer.parseInt (είσοδος); validInput = true; } catch (NumberFormatException e) {validInput = false; }} // Δοκιμή nextDouble (); validInput = false; διπλά χρήματαInWallet = 0,0; while (! validInput) {System.out.print ("Πόσα χρήματα υπάρχουν στο πορτοφόλι σας; $"); String input = userInputScanner.nextLine (); δοκιμάστε {moneyInWallet = Double.parseDouble (είσοδος); validInput = true; } catch (NumberFormatException e) {validInput = false; }} System.out.println ("\ nΓεια" + όνομα + "! Έχετε" + numberOfCats + (numberOfCats> 1; "cats": "cat") + "και $" + moneyInWallet + "στο πορτοφόλι σας. / n "); }}

  • Σημειώστε ότι εδώ δεν χρειάστηκε να εισαγάγουμε το

    NumberFormatException

  • κλάσης επειδή είναι μέρος του πακέτου java.lang, πράγμα που σημαίνει ότι είναι ενσωματωμένο.
  • Επίσης, δεν χρειάστηκε να καθαρίσουμε το buffer χρησιμοποιώντας

    userInputScanner.nextLine ();

  • στο τμήμα αλίευσης του try-catch.

Συμβουλές

  • Ανατρέξτε στο API σαρωτή για περισσότερες πληροφορίες σχετικά με τη χρήση της κλάσης σαρωτή.
  • Χρησιμοποιείτε πάντα.next () αντί για.nextLine () για να διαβάσετε την επόμενη λέξη, καθώς το.nextLine () μπορεί να είναι σφάλμα.

Συνιστάται: