Java -da bir istifadəçidən girişi necə əldə etmək olar (şəkillərlə)

Mündəricat:

Java -da bir istifadəçidən girişi necə əldə etmək olar (şəkillərlə)
Java -da bir istifadəçidən girişi necə əldə etmək olar (şəkillərlə)

Video: Java -da bir istifadəçidən girişi necə əldə etmək olar (şəkillərlə)

Video: Java -da bir istifadəçidən girişi necə əldə etmək olar (şəkillərlə)
Video: iphone magic pew pew text @makitech 2024, Bilər
Anonim

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

1514756 1
1514756 1

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.

1514756 2
1514756 2

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);

1514756 3
1514756 3

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

1514756 4
1514756 4

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.

1514756 5
1514756 5

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

  • sinif
  • İstifadəçi düzgün daxil olana qədər eyni sualı istifadəçiyə vermək üçün bir müddət döngəsindən istifadə edirik.
  • Əlavə olunur

    userInputScanner.nextLine ();

  • try-catch-in tutma hissəsində Skanerin istifadəçinin "enter" düyməsini basmasını qəbul etməsini və giriş tamponunu təmizləmək üçün bir funksiya yerinə yetirməsini təmin edir.
1514756 6
1514756 6

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

  • sinif, çünki java.lang paketinin bir hissəsidir, yəni içəriyə daxil olduğunu bildirir.
  • İstifadə edərək tamponu təmizləmək məcburiyyətində deyildik

    userInputScanner.nextLine ();

  • sınağın tutma hissəsində.

İ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.

Tövsiyə: