Java -da foydalanuvchidan kirishni qanday olish mumkin (rasmlar bilan)

Mundarija:

Java -da foydalanuvchidan kirishni qanday olish mumkin (rasmlar bilan)
Java -da foydalanuvchidan kirishni qanday olish mumkin (rasmlar bilan)

Video: Java -da foydalanuvchidan kirishni qanday olish mumkin (rasmlar bilan)

Video: Java -da foydalanuvchidan kirishni qanday olish mumkin (rasmlar bilan)
Video: Telegram ovozli habar muammosi 2024, Aprel
Anonim

Java yoki boshqa tilda dasturlashda, ehtimol, siz foydalanuvchining kirish ma'lumotlarini ishlatishingiz kerak bo'ladi. Java foydalanuvchi ma'lumotlarini olishning turli usullarini taqdim etadi, lekin eng keng tarqalgan va, ehtimol, eng oson qo'llaniladigan usul - bu Skaner ob'ektidan foydalanish.

Qadamlar

2 -usul 1: Video

1514756 1
1514756 1

Qadam 1. Skaner sinfini import qiling

Siz importni tanlashingiz mumkin

java.util. Skaner

sinf yoki butun

java.util

paket Sinf yoki paketni import qilish uchun kodingizning boshiga quyidagi qatorlardan birini qo'shing:

    java.util. Scanner -ni import qilish; // Bu faqat skaner sinfini import qiladi. java.util import qilish.*; // Bu butun java.util paketini import qiladi.

1514756 2
1514756 2

2 -qadam. O'tish orqali yangi skaner ob'ektini ishga tushiring

System.in saytida

konstruktorga kirish oqimi.

System.in saytida

bu allaqachon ochiq bo'lgan va kirish ma'lumotlarini etkazib berishga tayyor bo'lgan standart kirish oqimi. Odatda bu oqim klaviatura kiritishiga mos keladi.

    UserInputScanner skaneri = yangi skaner (System.in);

1514756 3
1514756 3

3 -qadam. Foydalanuvchi kiritadigan har xil turdagi ma'lumotlarni o'qing

Skaner klassi satrlarni olishdan tashqari int, bayt, short, long kabi ibtidoiylarni olishni qo'llab -quvvatlaydi.

  • Bu erda Scanner sinfida mavjud bo'lgan ba'zi usullar:

    • Bir bayt o'qing -

      nextByte ()

    • Qisqa o'qing -

      nextShort ()

    • Int ni o'qing

      nextInt ()

    • Uzoq o'qing -

      nextLong ()

    • Float o'qing -

      nextFloat ()

    • Ikki marta o'qing -

      nextDouble ()

    • Mantiqiy o'qish -

      nextBoolean ()

    • To'liq qatorni o'qing -

      nextLine ()

    • Bir so'zni o'qing -

      Keyingi()

  • Bu erda har xil kirishni olish uchun Skaner sinfining har xil usullaridan foydalanadigan dasturning misoli:

      java.util. Scanner -ni import qilish; umumiy sinf ScannerExample {public static void main (String args) {// Yangi skaner skanerini ishga tushiring userInputScanner = yangi skaner (System.in); // nextLine () ni sinovdan o'tkazish; System.out.println ("\ nSizning ismingiz kim?"); String nomi = userInputScanner.nextLine (); // test nextInt (); System.out.print ("Sizda qancha mushuk bor?"); int numberOfCats = userInputScanner.nextInt (); // test nextDouble (); System.out.print ("Hamyoningizda qancha pul bor? $"); double moneyInWallet = userInputScanner.nextDouble (); System.out.println ("\ nSalom" + ism + "! Hamyoningizda" + numberOfCats + (numberOfCats> 1? "Mushuklar": "mushuk") + "va $" + moneyInWallet + "bor. / N"); }}

2 -ning 2 -usuli: istisnolardan foydalanish

1514756 4
1514756 4

Qadam 1. Kirish istisnolarini ko'rib chiqing

An

InputMismatchException

foydalanuvchi so'ralgan turga mos bo'lmagan ma'lumotlarni kiritganda tashlanadi. Masalan, int so'ralganda foydalanuvchi Stringga kirsa, dastur

InputMismatchException

va chiqish. Sizning dasturingiz befarq bo'lmasligi uchun ushbu istisnoni hal qilish va muammoni hal qilishning bir necha yo'li mavjud.

1514756 5
1514756 5

2-qadam

InputMismatchException

.

    java.util. InputMismatchException ni import qilish; java.util. Scanner -ni import qilish; umumiy sinf ScannerExample {public static void main (String args) {// Yangi skaner skanerini ishga tushiring userInputScanner = yangi skaner (System.in); // nextLine () ni sinovdan o'tkazish; System.out.print ("\ nSizning ismingiz kim?"); String nomi = userInputScanner.nextLine (); // test nextInt (); boolean validInput = false; int numberOfCats = 0; while (! validInput) {System.out.print ("Sizda qancha mushuk bor?"); harakat qilib ko'ring {numberOfCats = userInputScanner.nextInt (); validInput = rost; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} // nextDouble () ni sinovdan o'tkazish; validInput = noto'g'ri; ikki barobar pulInWallet = 0,0; while (! validInput) {System.out.print ("Hamyoningizda qancha pul bor? $"); harakat qilib ko'ring {moneyInWallet = userInputScanner.nextDouble (); userInputScanner.nextLine (); validInput = rost; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} System.out.println ("\ nSalom" + ism + "! Hamyoningizda" + numberOfCats + (numberOfCats> 1? "Mushuklar": "mushuk") + "va $" + moneyInWallet + "bor. / n "); }}

  • E'tibor bering, biz import qilishimiz kerak

    java.util. InputMismatchException

    dan foydalanish uchun

    InputMismatchException

  • sinf
  • Foydalanuvchi to'g'ri kirishni kiritmaguncha, biz bir xil savolni berish uchun vaqtni ishlatamiz.
  • Qo'shish

    userInputScanner.nextLine ();

  • urinishning ushlash qismida Skaner foydalanuvchidan "kiritish" tugmachasini tan olishini va kirish buferini tozalash usuli sifatida ishlashini ta'minlaydi.
1514756 6
1514756 6

3 -qadam. Shu bilan bir qatorda, skanerdan keyingi satrlarni olib, foydalanuvchi kiritishni aqlsiz qilib qo'ying

Shunday qilib, biz skaner qaytaradigan hamma narsa String obyekti ekanligini va hech qanday istisno yaratmasligini ta'minlay olamiz. So'ngra, satrlarni butun sonlarga yoki juftlarga aylantirish uchun biz Integer va Double wrapper sinflaridan foydalanishimiz mumkin.

    java.util. Scanner -ni import qilish; umumiy sinf ScannerExample {public static void main (String args) {// Yangi skaner skanerini ishga tushiring userInputScanner = yangi skaner (System.in); // nextLine () ni sinovdan o'tkazish; System.out.print ("\ nSizning ismingiz kim?"); String nomi = userInputScanner.nextLine (); // test nextInt (); boolean validInput = false; int numberOfCats = 0; while (! validInput) {System.out.print ("Sizda qancha mushuk bor?"); String kiritish = userInputScanner.nextLine (); harakat qilib ko'ring {numberOfCats = Integer.parseInt (kiritish); validInput = rost; } catch (NumberFormatException e) {validInput = false; }} // nextDouble () ni sinovdan o'tkazish; validInput = noto'g'ri; ikki barobar pulInWallet = 0,0; while (! validInput) {System.out.print ("Hamyoningizda qancha pul bor? $"); String kiritish = userInputScanner.nextLine (); harakat qilib ko'ring {moneyInWallet = Double.parseDouble (kiritish); validInput = rost; } catch (NumberFormatException e) {validInput = false; }} System.out.println ("\ nSalom" + ism + "! Hamyoningizda" + numberOfCats + (numberOfCats> 1? "Mushuklar": "mushuk") + "va $" + moneyInWallet + "bor. / n "); }}

  • E'tibor bering, bu erda biz import qilishimiz shart emas edi

    NumberFormatException

  • sinf, chunki u java.lang paketining bir qismidir, demak u o'rnatilgan.
  • Bundan tashqari, buferni tozalash kerak emas edi

    userInputScanner.nextLine ();

  • urinishning ushlash qismida.

Maslahatlar

  • Skaner sinfidan foydalanish haqida qo'shimcha ma'lumot olish uchun Scanner API -ga qarang.
  • Keyingi so'zni o'qish uchun.nextLine () o'rniga har doim.next () dan foydalaning, chunki.nextLine () xato bo'lishi mumkin.

Tavsiya: