1. Χρησιμοποιώντας το "Scanner` (για είσοδο κονσόλας):
Αυτή είναι η πιο συνηθισμένη μέθοδος για τη λήψη εισόδου χρήστη από την κονσόλα.
`` `java
Εισαγωγή java.util.scanner;
δημόσια τάξη DoubleInput {
δημόσιο στατικό κενό κύριο (String [] args) {
Scanner Scanner =νέος σαρωτής (System.in);
System.out.print ("Εισάγετε μια διπλή τιμή:");
// Χρησιμοποιήστε το nextDouble () για να διαβάσετε ένα διπλό
διπλό διπλόValue =scanner.NextDouble ();
System.out.println ("Εισήγαγες:" + DoubleValue);
scanner.close (); // ΣΗΜΑΝΤΙΚΟ:Κλείστε τον σαρωτή όταν τελειώσετε
}
}
`` `
Σημαντικές εκτιμήσεις με «σαρωτή»:
* Χειρισμός σφαλμάτων: `nextDouble ()` ρίχνει ένα `inputMistatchException` αν ο χρήστης εισάγει κάτι που δεν είναι έγκυρο διπλό (π.χ. κείμενο). Θα πρέπει να χειριστείτε αυτήν την εξαίρεση χρησιμοποιώντας ένα μπλοκ `try-catch` για να αποτρέψετε τη συντριβή του προγράμματος:
`` `java
Εισαγωγή java.util.inputmismatchException;
Εισαγωγή java.util.scanner;
δημόσια τάξη DoubleInputWithExceptionHandling {
δημόσιο στατικό κενό κύριο (String [] args) {
Scanner Scanner =νέος σαρωτής (System.in);
System.out.print ("Εισάγετε μια διπλή τιμή:");
διπλή διπλής αξιοπιστίας.
Δοκιμάστε {
doubleValue =scanner.NextDouble ();
} catch (inputMistatchException e) {
System.out.println ("Μη έγκυρη είσοδος. Εισαγάγετε ένα έγκυρο διπλό.");
scanner.next (); // καταναλώνετε την μη έγκυρη είσοδο
απόδοση; // ή χειριστείτε το σφάλμα με άλλο τρόπο
}
System.out.println ("Εισήγαγες:" + DoubleValue);
scanner.close ();
}
}
`` `
* `scanner.next ()`: Το `scanner.next ()` Κλήση μέσα στο μπλοκ `catch` είναι κρίσιμο. Εάν εμφανιστεί μια `InputMistatchException`, η μη έγκυρη είσοδος παραμένει στο buffer του 'Scanner'. `scanner.next ()` καταναλώνει αυτήν την άκυρη είσοδο, επιτρέποντας στο πρόγραμμα να προτρέψει ξανά τον χρήστη χωρίς να κολλήσει σε άπειρο βρόχο.
2. Χρησιμοποιώντας το `bufferedreader` (για την κονσόλα ή την είσοδο αρχείου):
Το `bufferedreader` είναι πιο αποτελεσματικό για μεγάλες εισροές, αλλά απαιτεί περισσότερη χειροκίνητη ανάλυση.
`` `java
Εισαγωγή java.io.bufferedreader;
Εισαγωγή java.io.ioexception;
εισαγωγή java.io.inputstreamreader;
δημόσια τάξη DoubleInputBufferedReader {
δημόσιο στατικό κενό κύριο (String [] args) {
BufferedReader Reader =νέο BufferedReader (New InputStreamReader (System.in));
System.out.print ("Εισάγετε μια διπλή τιμή:");
Δοκιμάστε {
Εισόδου συμβολοσειράς =Reader.readline ();
διπλή διπλής αξιολόγησης =double.parsedouble (είσοδος);
System.out.println ("Εισήγαγες:" + DoubleValue);
} catch (iOexception e) {
System.out.println ("Εισαγωγή ανάγνωσης σφαλμάτων:" + e.getMessage ());
} catch (αριθμόςFormateXception e) {
System.out.println ("Μη έγκυρη είσοδος. Εισαγάγετε ένα έγκυρο διπλό.");
}
}
}
`` `
Αυτή η μέθοδος χρησιμοποιεί `double.parsedouble ()` για να μετατρέψει την είσοδο συμβολοσειράς σε ένα διπλό. Περιλαμβάνει επίσης τη διαχείριση σφαλμάτων τόσο για «IoException» (σφάλμα εισόδου/εξόδου) όσο και για `numberFormateXception` (μη έγκυρη μορφή αριθμού).
3. Επιχειρήματα γραμμής εντολών:
Μπορείτε να περάσετε μια διπλή τιμή ως επιχείρημα γραμμής εντολών κατά την εκτέλεση του προγράμματος Java.
`` `java
δημόσια τάξη DoubleInputCommandline {
δημόσιο στατικό κενό κύριο (String [] args) {
αν (args.length> 0) {
Δοκιμάστε {
διπλή διπλής αξιοπιστίας =double.parsedouble (args [0]);
System.out.println ("Εισήγαγες:" + DoubleValue);
} catch (αριθμόςFormateXception e) {
System.out.println ("Μη έγκυρη είσοδος.
}
} αλλιώς {
System.out.println ("Παρακαλούμε να δώσετε μια διπλή τιμή ως επιχείρημα γραμμής εντολών.");
}
}
}
`` `
Θυμηθείτε να συντάξετε και να εκτελέσετε αυτό από το τερματικό σας ως εξής:`Java DoubleInputCommandline 3.14159`
Επιλέξτε τη μέθοδο που ταιριάζει καλύτερα στις ανάγκες σας και θυμηθείτε να συμπεριλάβετε πάντα τον ισχυρό χειρισμό σφαλμάτων για να κάνετε το πρόγραμμά σας πιο ανθεκτικό. Η προσέγγιση «Scanner» προτιμάται γενικά για την απλότητα και τις ενσωματωμένες δυνατότητες χειρισμού σφαλμάτων κατά τη λήψη εισροών από την κονσόλα. Το `bufferedreader` προσφέρει καλύτερη απόδοση για μεγάλα αρχεία. Τα επιχειρήματα γραμμής εντολών είναι χρήσιμα για την παροχή εισόδου κατά την εκτέλεση του προγράμματος από το τερματικό.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα