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
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.
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);
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
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.
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
Qo'shish
userInputScanner.nextLine ();
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
Bundan tashqari, buferni tozalash kerak emas edi
userInputScanner.nextLine ();
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.