Java- ով կամ որևէ այլ լեզվով ծրագրելիս, ամենայն հավանականությամբ, անհրաժեշտ կլինի օգտվողի մուտքային տեղեկատվություն օգտագործել: Java- ն տրամադրում է օգտվողին տեղեկատվություն ստանալու բազմաթիվ տարբեր մեթոդներ, սակայն ամենատարածված և գուցե ամենահեշտ կիրառվող մեթոդը Սկաներ օբյեկտի օգտագործումն է:
Քայլեր
Մեթոդ 1 2 -ից. Տեսանյութեր
Քայլ 1. Ներմուծեք Սկաներ դասը:
Դուք կարող եք ընտրել ներմուծումը
java.util. Scanner
դասը կամ ամբողջը
java.util
փաթեթ. Դաս կամ փաթեթ ներմուծելու համար ձեր ծածկագրի հենց սկզբում ավելացրեք հետևյալ տողերից մեկը.
ներմուծել java.util. Scanner; // Սա կներմուծի միայն Սկաներ դասը: ներմուծել java.util.*; // Սա կներմուծի ամբողջ java.util փաթեթը:
Քայլ 2. Նախաստորագրեք սկաների նոր օբյեկտը ՝ փոխանցելով այն
System.in
մուտքային հոսք դեպի կոնստրուկտոր:
System.in
ստանդարտ մուտքային հոսքն է, որն արդեն բաց է և պատրաստ է տրամադրել մուտքային տվյալներ: Սովորաբար այս հոսքը համապատասխանում է ստեղնաշարի մուտքագրմանը:
Սկան userInputScanner = նոր Սկաներ (System.in);
Քայլ 3. Կարդացեք օգտագործողի մուտքագրած տարբեր տեսակի տվյալների մեջ:
Սկաներ դասը աջակցում է պարզունակներ ստանալուն, ինչպիսիք են int, բայթ, կարճ, երկար, բացի տողեր ստանալուց:
-
Ահա մի քանի մեթոդներ, որոնք հասանելի են Սկաներ դասի միջոցով.
-
Կարդալ բայթ -
nextByte ()
-
Կարճ կարդացեք -
nextShort ()
-
Կարդալ ինտ -
nextInt ()
-
Երկար կարդացեք -
հաջորդ Երկար ()
-
Կարդացեք բոց -
nextFloat ()
-
Կրկնակի կարդալ -
հաջորդ Կրկնակի ()
-
Կարդա բուլյան -
հաջորդԲուլյան ()
-
Կարդացեք ամբողջական տող -
հաջորդ տող ()
-
Կարդա մի բառ -
հաջորդ ()
-
-
Ահա ծրագրի օրինակ, որն օգտագործում է Սկաներ դասի տարբեր մեթոդներ ՝ տարբեր տեսակի մուտքագրումներ ստանալու համար.
ներմուծել java.util. Scanner; public class ScannerExample {public static void main (String args) {// Initiate a new Scanner Scanner userInputScanner = նոր սկան (System.in); // Testing nextLine (); System.out.println ("\ n Ինչ է քո անունը?"); Լարային անուն = userInputScanner.nextLine (); // Testing nextInt (); System.out.print («Քանի՞ կատու ունեք»); int numberOfCats = userInputScanner.nextInt (); // Testing nextDouble (); System.out.print («Որքա՞ն գումար կա ձեր դրամապանակում: $»); կրկնակի moneyInWallet = userInputScanner.nextDouble (); System.out.println ("\ n Բարև" + անուն + "! Ձեր դրամապանակում ունեք" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "և $" + moneyInWallet + ": / n"); }}
Մեթոդ 2 -ից 2 -ը. Բացառությունների բեռնաթափում
Քայլ 1. Կառավարեք մուտքային բացառությունները:
Ան
InputMismatchException
նետվում է, երբ օգտագործողը մուտքագրում է տվյալներ, որոնք չեն համապատասխանում պահանջվող տիպին: Օրինակ, եթե օգտագործողը մուտքագրում է String, երբ int- ն է պահանջվում, ծրագիրը նետում է
InputMismatchException
և ելք: Այս բացառությունը լուծելու և այս խնդիրը լուծելու մի քանի եղանակ կա, որպեսզի ձեր ծրագիրը կարողանա անթերի լինել:
Քայլ 2. Օգտագործեք try-catch բլոկը ՝ կարգավորելու համար
InputMismatchException
.
ներմուծել java.util. InputMismatchException; ներմուծել java.util. Scanner; public class ScannerExample {public static void main (String args) {// Initiate a new Scanner Scanner userInputScanner = նոր սկան (System.in); // Testing nextLine (); System.out.print ("\ n Ինչ է քո անունը?"); Լարի անուն = userInputScanner.nextLine (); // Testing nextInt (); բուլյան validInput = կեղծ; int numberOfCats = 0; while (! validInput) {System.out.print («Քանի՞ կատու ունեք»); փորձեք {numberOfCats = userInputScanner.nextInt (); validInput = ճշմարիտ; } բռնել (InputMismatchException ե) {validInput = false; userInputScanner.nextLine (); }} // Testing nextDouble (); validInput = կեղծ; կրկնակի գումար InWallet = 0.0; while (! validInput) {System.out.print («Որքա՞ն գումար կա ձեր դրամապանակում. $»); փորձիր {moneyInWallet = userInputScanner.nextDouble (); userInputScanner.nextLine (); validInput = ճշմարիտ; } բռնել (InputMismatchException ե) {validInput = false; userInputScanner.nextLine (); }} System.out.println ("\ n Բարև" + անուն + "! Ձեր դրամապանակում ունեք" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "և $" + moneyInWallet + ": / n "); }}
Նշենք, որ մենք պետք է ներմուծենք
java.util. InputMismatchException
-ն օգտագործելու համար
InputMismatchException
Ավելացնելով
userInputScanner.nextLine ();
Քայլ 3. Այլապես, օգտագործողի մուտքն անմեղացրեք, միայն սկաների հաջորդ տողերը վերցնելով:
Այս կերպ մենք կարող ենք ապահովել, որ այն ամենը, ինչ վերադարձնում է Սկաները, լինի Լարային օբյեկտ և չստեղծի որևէ բացառություն: Այնուհետեւ, տողերը ամբողջ թվերի կամ կրկնապատկելու համար կարող ենք օգտագործել Integer եւ Double wrapper դասերը:
ներմուծել java.util. Scanner; public class ScannerExample {public static void main (String args) {// Initiate a new Scanner Scanner userInputScanner = նոր սկան (System.in); // Testing nextLine (); System.out.print ("\ n Ինչ է քո անունը?"); Լարի անուն = userInputScanner.nextLine (); // Testing nextInt (); բուլյան validInput = կեղծ; int numberOfCats = 0; while (! validInput) {System.out.print («Քանի՞ կատու ունեք»); Լարային մուտքագրում = userInputScanner.nextLine (); փորձեք {numberOfCats = Integer.parseInt (մուտքագրում); validInput = ճշմարիտ; } բռնել (NumberFormatException ե) {validInput = false; }} // Testing nextDouble (); validInput = կեղծ; կրկնակի գումար InWallet = 0.0; while (! validInput) {System.out.print («Որքա՞ն գումար կա ձեր դրամապանակում. $»); Լարային մուտքագրում = userInputScanner.nextLine (); փորձել {moneyInWallet = Double.parseDouble (մուտքագրում); validInput = ճշմարիտ; } բռնել (NumberFormatException ե) {validInput = false; }} System.out.println ("\ n Բարև" + անուն + "! Ձեր դրամապանակում ունեք" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "և $" + moneyInWallet + ": / n "); }}
Նշենք, որ այստեղ մենք ստիպված չէինք ներմուծել
NumberFormatException
Մենք նաև ստիպված չէինք բուֆերը մաքրել ՝ օգտագործելով
userInputScanner.nextLine ();
Խորհուրդներ
- Տեսեք Սկաներ API- ն Սկաներ դասի օգտագործման մասին լրացուցիչ տեղեկությունների համար:
- Հաջորդ բառը կարդալու համար միշտ օգտագործեք.next ().nextLine () - ի փոխարեն: