Java və ya başqa bir dildə proqramlaşdırarkən, çox güman ki, istifadəçinin giriş məlumatlarından istifadə etməlisiniz. Java, istifadəçi məlumatlarını əldə etmək üçün bir çox fərqli üsul təqdim edir, lakin ən çox yayılmış və bəlkə də ən asan tətbiq olunan üsul Skaner obyektindən istifadə etməkdir.
Addımlar
Metod 1 /2: Videolar
Addım 1. Skaner sinifini idxal edin
Ya idxal etməyi seçə bilərsiniz
java.util. Skaner
sinif və ya bütün
java.util
paket. Bir sinif və ya paketi idxal etmək üçün kodunuzun əvvəlinə aşağıdakı sətirlərdən birini əlavə edin:
java.util. Scanner idxal edin; // Bu yalnız Scanner sinifini idxal edəcək. java.util idxal edin.*; // Bu, bütün java.util paketini idxal edəcək.
Addım 2. Keçərək yeni bir Skaner obyektini işə salın
Sistemdə
konstruktora giriş axını.
Sistemdə
artıq açıq olan və giriş məlumatlarını verməyə hazır olan standart giriş axınıdır. Tipik olaraq bu axın klaviatura girişinə uyğundur.
Skaner userInputScanner = yeni Skaner (System.in);
Addım 3. İstifadəçinin daxil etdiyi müxtəlif növ giriş məlumatlarını oxuyun
Skaner sinfi, sətirlər əldə etməklə yanaşı int, bayt, qısa, uzun kimi primitivlərin alınmasını dəstəkləyir.
-
Scanner sinifində mövcud olan bəzi üsullar:
-
Bir bayt oxuyun -
nextByte ()
-
Qısa oxuyun -
nextShort ()
-
İnt oxuyun -
nextInt ()
-
Uzun oxuyun -
nextLong ()
-
Bir float oxuyun -
nextFloat ()
-
Bir cüt oxuyun -
nextDouble ()
-
Mənbə oxuyun -
nextBoolean ()
-
Tam bir sətir oxuyun -
nextLine ()
-
Bir söz oxuyun -
sonrakı ()
-
-
Fərqli giriş növləri əldə etmək üçün Scanner sinifinin fərqli metodlarından istifadə edən bir proqram nümunəsi:
java.util. Scanner idxal edin; ictimai sinif ScannerExample {public static void main (String args) {// Yeni Scanner Scanner userInputScanner = new Scanner (System.in) işə salın; // nextLine testi (); System.out.println ("\ nAdınız nədir?"); String adı = userInputScanner.nextLine (); // nextInt () testi; System.out.print ("Neçə pişiyiniz var?"); int numberOfCats = userInputScanner.nextInt (); // NextDouble testi (); System.out.print ("Cüzdanınızda nə qədər pul var? $"); ikiqat moneyInWallet = userInputScanner.nextDouble (); System.out.println ("\ nSalam" + ad + "! Cüzdanınızda" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "və $" + moneyInWallet + "var. / N"); }}
Metod 2 /2: İstisnaların işlənməsi
Addım 1. Giriş istisnalarını idarə edin
Bir
InputMismatchException
İstifadəçi tələb olunan tipə uyğun gəlməyən məlumatları daxil edərkən atılır. Məsələn, int istənəndə istifadəçi Stringə girərsə, proqram bir
InputMismatchException
və çıxmaq. Proqramınızın qüsursuz olması üçün bu istisnanı idarə etməyin və bu problemi həll etməyin bir neçə yolu var.
Addım 2. İşlətmək üçün bir tutma bloku istifadə edin
InputMismatchException
.
java.util. InputMismatchException idxal edin; java.util. Scanner idxal edin; ictimai sinif ScannerExample {public static void main (String args) {// Yeni Scanner Scanner userInputScanner = new Scanner (System.in) işə salın; // nextLine testi (); System.out.print ("\ nAdınız nədir?"); String adı = userInputScanner.nextLine (); // nextInt () testi; boolean validInput = yanlış; int numberOfCats = 0; while (! validInput) {System.out.print ("Neçə pişiyiniz var?"); cəhd edin {numberOfCats = userInputScanner.nextInt (); validInput = doğru; } tutmaq (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} // nextDouble testi (); validInput = yanlış; ikiqat moneyInWallet = 0.0; while (! validInput) {System.out.print ("Cüzdanınızda nə qədər pul var? $"); cəhd edin {moneyInWallet = userInputScanner.nextDouble (); userInputScanner.nextLine (); validInput = doğru; } tutmaq (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} System.out.println ("\ nSalam" + ad + "! Cüzdanınızda" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "və $" + moneyInWallet + "var. / n "); }}
Nəzərə alın ki, idxal etməliyik
java.util. InputMismatchException
istifadə etmək üçün
InputMismatchException
Əlavə olunur
userInputScanner.nextLine ();
Addım 3. Alternativ olaraq, istifadəçinin girişini yalnız Skanerdən sonrakı sətirləri götürərək ağılsız hala gətirin
Bu şəkildə, Skanerin geri qaytardığı hər şeyin String obyekti olmasını və heç bir istisna yaratmayacağını təmin edə bilərik. Sonra sətirləri tam ədədlərə və ya cütlərə çevirmək üçün Integer və Double wrapper siniflərindən istifadə edə bilərik.
java.util. Scanner idxal edin; ictimai sinif ScannerExample {public static void main (String args) {// Yeni Scanner Scanner userInputScanner = new Scanner (System.in) işə salın; // nextLine testi (); System.out.print ("\ nAdınız nədir?"); String adı = userInputScanner.nextLine (); // nextInt () testi; boolean validInput = yanlış; int numberOfCats = 0; while (! validInput) {System.out.print ("Neçə pişiyiniz var?"); String girişi = userInputScanner.nextLine (); cəhd edin {numberOfCats = Integer.parseInt (giriş); validInput = doğru; } tutmaq (NumberFormatException e) {validInput = false; }} // nextDouble testi (); validInput = yanlış; ikiqat moneyInWallet = 0.0; while (! validInput) {System.out.print ("Cüzdanınızda nə qədər pul var? $"); String girişi = userInputScanner.nextLine (); cəhd edin {moneyInWallet = Double.parseDouble (giriş); validInput = doğru; } tutmaq (NumberFormatException e) {validInput = false; }} System.out.println ("\ nSalam" + ad + "! Cüzdanınızda" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "və $" + moneyInWallet + "var. / n "); }}
Qeyd edək ki, burada idxal etmək məcburiyyətində deyildik
NumberFormatException
İstifadə edərək tamponu təmizləmək məcburiyyətində deyildik
userInputScanner.nextLine ();
İpuçları
- Skaner sinifindən istifadə haqqında daha çox məlumat üçün Scanner API -yə baxın.
- Növbəti sözü oxumaq üçün.nextLine () yerinə həmişə.next () istifadə edin, çünki.nextLine () buggy ola bilər.