Unapopanga programu katika Java au lugha nyingine yoyote, utahitaji kutumia habari ya kuingiza kutoka kwa mtumiaji. Java hutoa njia nyingi tofauti za kupata habari za mtumiaji, lakini njia ya kawaida na labda rahisi kutekeleza ni kutumia kitu cha Scanner.
Hatua
Njia 1 ya 2: Video
Hatua ya 1. Ingiza darasa la Skana
Unaweza kuchagua kuagiza faili ya
java.util. Scanner
darasa au nzima
java.util
kifurushi. Ili kuagiza darasa au kifurushi, ongeza moja ya mistari ifuatayo mwanzoni mwa nambari yako:
kuagiza java.util. Scanner; // Hii itaingiza tu darasa la Skana. kuagiza java.util. *; // Hii itaingiza kifurushi chote cha java.util.
Hatua ya 2. Anzisha kitu kipya cha skana kwa kupitisha faili ya
Mfumo
mkondo wa kuingiza kwa mjenzi.
Mfumo
ni mkondo wa kawaida wa kuingiza ambao tayari uko wazi na uko tayari kusambaza data ya pembejeo. Kawaida mkondo huu unalingana na uingizaji wa kibodi.
Scanner userInputScanner = Scanner mpya (System.in);
Hatua ya 3. Soma katika aina tofauti za data ya kuingiza ambayo mtumiaji huingia
Darasa la skana inasaidia kupata vipaumbele kama int, byte, fupi, ndefu pamoja na kupata kamba.
-
Hapa kuna njia ambazo zinapatikana kupitia darasa la Scanner:
-
Soma baiti -
inayofuataByte ()
-
Soma kifupi -
ijayoShort ()
-
Soma int -
ijayoInt ()
-
Soma kwa muda mrefu -
inayofuataLong ()
-
Soma kuelea -
IjayoFloat ()
-
Soma mara mbili -
inayofuataDouble ()
-
Soma boolean -
inayofuataBoolean ()
-
Soma mstari kamili -
NextLine ()
-
Soma neno -
ijayo ()
-
-
Hapa kuna mfano wa programu inayotumia njia tofauti za darasa la Scanner kupata aina tofauti za pembejeo:
kuagiza java.util. Scanner; Mfano wa darasa la umma ScannerExample {public static void main (String args) {// Anzisha Scanner Scanner userInputScanner = Scanner mpya (System.in); // UpimajiLineLine inayofuata (); System.out.println ("\ jina lako ni nani?"); Jina la kamba = userInputScanner.nextLine (); // Kupima ijayoInt (); System.out.print ("Una paka ngapi?"); idadi yaOfCats = userInputScanner.nextInt (); // Upimaji unaofuataDouble (); System.out.print ("Je! Ni pesa ngapi kwenye mkoba wako? $"); pesa mbiliInWallet = userInputScanner.nextDouble (); System.out.println ("\ nSalama" + jina + "! Una" + idadiOfCats + (idadiOfCats> 1? "Paka": "paka") + "na $" + moneyInWallet + "kwenye mkoba wako. / N"); }}
Njia 2 ya 2: Kushughulikia Vighairi
Hatua ya 1. Shughulikia tofauti za pembejeo
An
InputMismatchException
inatupwa wakati mtumiaji anaingiza data ambayo hailingani na aina iliyoombwa. Kwa mfano, ikiwa mtumiaji ataingia kwenye Kamba wakati int inaulizwa, programu itatupa
InputMismatchException
na toka. Kuna njia kadhaa za kushughulikia ubaguzi huu na utatue shida hii ili programu yako iweze kujinga.
Hatua ya 2. Tumia kizuizi cha kukamata kushughulikia
InputMismatchException
.
kuagiza java.util. InputMismatchException; kuagiza java.util. Scanner; Mfano wa darasa la umma ScannerExample {public static void main (String args) {// Anzisha Scanner Scanner userInputScanner = Scanner mpya (System.in); // UpimajiLineLine inayofuata (); System.out.print ("\ nUnaitwa nani?"); Jina la kamba = userInputScanner.nextLine (); // Kupima ijayoInt (); boolean validInput = uwongo; idadiOfCats = 0; wakati (! validInput) {System.out.print ("Una paka ngapi?"); jaribu {numberOfCats = userInputScanner.nextInt (); halaliInput = kweli; } kukamata (InputMismatchException e) {validInput = false; mtumiajiInputScanner.nextLine (); }} // Upimaji unaofuataDouble (); halaliInput = uwongo; pesa mara mbiliInWallet = 0.0; wakati (! validInput) {System.out.print ("Pesa yako ni pesa ngapi? $"); jaribu {moneyInWallet = userInputScanner.nextDouble (); mtumiajiInputScanner.nextLine (); halaliInput = kweli; } kukamata (InputMismatchException e) {validInput = false; mtumiajiInputScanner.nextLine (); }} System.out.println ("\ nSalama" + jina + "! Una" + idadiOfCats + (nambaOfCats> 1? "Paka": "paka") + "na $" + moneyInWallet + "kwenye mkoba wako. / n "); }}
Kumbuka kuwa tunapaswa kuagiza
java.util. InputMismatchException
ili kutumia
InputMismatchException
Inaongeza
mtumiajiInputScanner.nextLine ();
Hatua ya 3. Vinginevyo, fanya pembejeo ya mtumiaji kuwa isiyo na ujinga kwa kuchukua tu mistari inayofuata kutoka kwa skana
Kwa njia hii, tunaweza kuhakikisha kuwa kila kitu ambacho Scanner inarudi ni kitu cha Kamba na haitaunda tofauti yoyote. Halafu, kubadilisha kamba kuwa nambari au maradufu, tunaweza kutumia madarasa ya Integer na Double Wrapper.
kuagiza java.util. Scanner; Mfano wa darasa la umma ScannerExample {public static void main (String args) {// Anzisha Scanner Scanner userInputScanner = Scanner mpya (System.in); // UpimajiLineLine inayofuata (); System.out.print ("\ nUnaitwa nani?"); Jina la kamba = userInputScanner.nextLine (); // Kupima ijayoInt (); boolean validInput = uwongo; idadiOfCats = 0; wakati (! validInput) {System.out.print ("Una paka ngapi?"); Uingizaji wa kamba = userInputScanner.nextLine (); jaribu {numberOfCats = Integer.parseInt (pembejeo); halaliInput = kweli; } kukamata (NumberFormatException e) {validInput = false; }} // Upimaji unaofuataDouble (); halaliInput = uwongo; pesa mara mbiliInWallet = 0.0; wakati (! validInput) {System.out.print ("Pesa yako ni pesa ngapi? $"); Uingizaji wa kamba = userInputScanner.nextLine (); jaribu {moneyInWallet = Double.parseDouble (pembejeo); halaliInput = kweli; } kukamata (NumberFormatException e) {validInput = false; }} System.out.println ("\ nSalama" + jina + "! Una" + idadiOfCats + (nambaOfCats> 1? "Paka": "paka") + "na $" + moneyInWallet + "kwenye mkoba wako. / n "); }}
Kumbuka kuwa hapa hatukuhitaji kuagiza faili ya
NambariFormatException
Hatukuhitaji pia kufuta bafa kwa kutumia
mtumiajiInputScanner.nextLine ();
Vidokezo
- Tazama API ya skana kwa habari zaidi juu ya kutumia darasa la skana.
- Tumia kila wakati.next () badala ya.nextLine () kusoma neno linalofuata, kama.nextLine () inaweza kuwa buggy.