ჯავაში ან სხვა ენაზე პროგრამირებისას, დიდი ალბათობით დაგჭირდებათ მომხმარებლისგან შეყვანის ინფორმაციის გამოყენება. ჯავა გთავაზობთ უამრავ განსხვავებულ მეთოდს მომხმარებლის ინფორმაციის მისაღებად, მაგრამ ყველაზე გავრცელებული და ალბათ ყველაზე მარტივი მეთოდი არის სკანერის ობიექტის გამოყენება.
ნაბიჯები
მეთოდი 2 დან 2: ვიდეო
ნაბიჯი 1. შემოიტანეთ სკანერის კლასი
თქვენ შეგიძლიათ აირჩიოთ იმპორტი
java.util. Scanner
კლასი ან მთლიანად
java.util
პაკეტი. კლასის ან პაკეტის იმპორტისათვის დაამატეთ ერთი შემდეგი ხაზი თქვენი კოდის დასაწყისში:
java.util. Scanner იმპორტი; // ეს შემოიტანს მხოლოდ სკანერის კლასს. java.util.*; // ეს შემოიტანს მთელ java.util პაკეტს.
ნაბიჯი 2. ახალი სკანერის ობიექტის ინიციალიზაცია
სისტემა. In
შეყვანის ნაკადი კონსტრუქტორში.
სისტემა. In
არის სტანდარტული შეყვანის ნაკადი, რომელიც უკვე ღიაა და მზადაა მიაწოდოს შეყვანის მონაცემები. როგორც წესი, ეს ნაკადი შეესაბამება კლავიატურის შეყვანას.
სკანერი userInputScanner = ახალი სკანერი (System.in);
ნაბიჯი 3. წაიკითხეთ სხვადასხვა სახის შეყვანის მონაცემები, რომელსაც მომხმარებელი შეიყვანს
სკანერის კლასი მხარს უჭერს პრიმიტივების მიღებას, როგორიცაა int, byte, short, long გარდა სტრიქონების მიღებისა.
-
აქ მოცემულია რამდენიმე მეთოდი, რომლებიც ხელმისაწვდომია სკანერის კლასში:
-
წაიკითხეთ ბაიტი -
შემდეგი ბიტი ()
-
მოკლედ წაიკითხე -
შემდეგი მოკლე ()
-
წაიკითხეთ ინ -
შემდეგი ()
-
დიდხანს წაიკითხე -
შემდეგი დიდხანს ()
-
წაიკითხეთ ათწილადი -
nextFloat ()
-
წაიკითხეთ ორმაგი -
შემდეგი ორმაგი ()
-
წაიკითხეთ ლოგიკური -
შემდეგი ლოგიკური ()
-
წაიკითხეთ სრული სტრიქონი -
შემდეგი ხაზი ()
-
წაიკითხეთ სიტყვა -
შემდეგი ()
-
-
აქ არის პროგრამის მაგალითი, რომელიც იყენებს სკანერის კლასის სხვადასხვა მეთოდს სხვადასხვა სახის შეყვანის მისაღებად:
java.util. Scanner იმპორტი; public class ScannerExample {public static void main (String args) {// ახალი სკანერის სკანერის ინიცირება userInputScanner = ახალი სკანერი (System.in); // ტესტირება nextLine (); System.out.println ("\ n რა გქვია?"); სიმებიანი სახელი = userInputScanner.nextLine (); // ტესტირება nextInt (); System.out.print ("რამდენი კატა გყავს?"); int numberOfCats = userInputScanner.nextInt (); // ტესტირება nextDouble (); System.out.print ("რამდენი ფული არის თქვენს საფულეში? $"); ორმაგი moneyInWallet = userInputScanner.nextDouble (); System.out.println ("\ n გამარჯობა" + სახელი + "! თქვენ გაქვთ" + numberOfCats + (numberOfCats> 1? "Cats": "კატა") + "და $" + moneyInWallet + "თქვენს საფულეში. / N"); }}
მეთოდი 2 დან 2: გამონაკლისების დამუშავება
ნაბიჯი 1. გაუმკლავდეთ შეყვანის გამონაკლისებს
ან
InputMismatchException
ის აგდება მაშინ, როდესაც მომხმარებელი შეიყვანს მონაცემებს, რომლებიც არ შეესაბამება მოთხოვნილ ტიპს. მაგალითად, თუ მომხმარებელი შეიყვანს სტრინგს, როდესაც მოთხოვნილია int, პროგრამა ჩააგდებს მას
InputMismatchException
და გასვლა. არსებობს რამდენიმე გზა ამ გამონაკლისის გასამკლავებლად და ამ პრობლემის მოსაგვარებლად ისე, რომ თქვენი პროგრამა იყოს უტყუარი.
ნაბიჯი 2. გამოიყენეთ try-catch ბლოკი
InputMismatchException
.
იმპორტი java.util. InputMismatchException; java.util. Scanner იმპორტი; public class ScannerExample {public static void main (String args) {// ახალი სკანერის სკანერის ინიცირება userInputScanner = ახალი სკანერი (System.in); // ტესტირება nextLine (); System.out.print ("\ n რა გქვია?"); სიმებიანი სახელი = userInputScanner.nextLine (); // ტესტირება nextInt (); ლოგიკური validInput = false; int ნომერიOfCats = 0; ხოლო (! validInput) {System.out.print ("რამდენი კატა გყავს?"); სცადეთ {numberOfCats = userInputScanner.nextInt (); validInput = ჭეშმარიტი; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} // ტესტირება nextDouble (); validInput = ყალბი; ორმაგი ფული InWallet = 0.0; while (! validInput) {System.out.print ("რამდენი ფული არის თქვენს საფულეში? $"); სცადეთ {moneyInWallet = userInputScanner.nextDouble (); userInputScanner.nextLine (); validInput = ჭეშმარიტი; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} System.out.println ("\ n გამარჯობა" + სახელი + "! თქვენ გაქვთ" + numberOfCats + (numberOfCats> 1? "Cats": "კატა") "" + "და $" + moneyInWallet + "თქვენს საფულეში. / n "); }}
გაითვალისწინეთ, რომ ჩვენ უნდა შემოვიტანოთ
java.util. InputMismatchException
იმისათვის, რომ გამოიყენოთ
InputMismatchException
დამატება
userInputScanner.nextLine ();
ნაბიჯი 3. გარდა ამისა, გახადეთ მომხმარებლის შეყვანა უტყუარი მხოლოდ სკანერიდან მომდევნო ხაზების აღებით
ამ გზით, ჩვენ შეგვიძლია დავრწმუნდეთ, რომ ყველაფერი რასაც სკანერი აბრუნებს არის სიმებიანი ობიექტი და არ შექმნის რაიმე გამონაკლისს. შემდეგ, სტრიქონების მთელ რიცხვზე ან ორმაგად გადასაყვანად, შეგვიძლია გამოვიყენოთ მთლიანი და ორმაგი შეფუთვის კლასები.
java.util. Scanner იმპორტი; public class ScannerExample {public static void main (String args) {// ახალი სკანერის სკანერის ინიცირება userInputScanner = ახალი სკანერი (System.in); // ტესტირება nextLine (); System.out.print ("\ n რა გქვია?"); სიმებიანი სახელი = userInputScanner.nextLine (); // ტესტირება nextInt (); ლოგიკური validInput = false; int ნომერიOfCats = 0; ხოლო (! validInput) {System.out.print ("რამდენი კატა გყავს?"); სიმებიანი შეყვანა = userInputScanner.nextLine (); სცადეთ {numberOfCats = Integer.parseInt (შეყვანა); validInput = ჭეშმარიტი; } catch (NumberFormatException e) {validInput = false; }} // ტესტირება nextDouble (); validInput = ყალბი; ორმაგი ფული InWallet = 0.0; while (! validInput) {System.out.print ("რამდენი ფული არის თქვენს საფულეში? $"); სიმებიანი შეყვანა = userInputScanner.nextLine (); სცადეთ {moneyInWallet = Double.parseDouble (შეყვანა); validInput = ჭეშმარიტი; } catch (NumberFormatException e) {validInput = false; }} System.out.println ("\ n გამარჯობა" + სახელი + "! თქვენ გაქვთ" + numberOfCats + (numberOfCats> 1? "Cats": "კატა") "" + "და $" + moneyInWallet + "თქვენს საფულეში. / n "); }}
გაითვალისწინეთ, რომ აქ ჩვენ არ გვჭირდება იმპორტის შემოტანა
NumberFormatException
ჩვენ ასევე არ გვჭირდება ბუფერის გაწმენდა გამოყენებით
userInputScanner.nextLine ();
Რჩევები
- იხილეთ სკანერის API დამატებითი ინფორმაციისთვის სკანერის კლასის გამოყენების შესახებ.
- ყოველთვის გამოიყენეთ.next () ნაცვლად.nextLine () მომდევნო სიტყვის წასაკითხად, რადგანაც.