Jinsi ya Kupata Ingizo kutoka kwa Mtumiaji katika Java (na Picha)

Orodha ya maudhui:

Jinsi ya Kupata Ingizo kutoka kwa Mtumiaji katika Java (na Picha)
Jinsi ya Kupata Ingizo kutoka kwa Mtumiaji katika Java (na Picha)

Video: Jinsi ya Kupata Ingizo kutoka kwa Mtumiaji katika Java (na Picha)

Video: Jinsi ya Kupata Ingizo kutoka kwa Mtumiaji katika Java (na Picha)
Video: AIBU: WAKWAMA KATIKA TENDO LA NDOA BAADA YAKUCHEPUKA, MKE ALIA SANA NA KU.. 2024, Mei
Anonim

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

1514756 1
1514756 1

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.

1514756 2
1514756 2

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);

1514756 3
1514756 3

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

1514756 4
1514756 4

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.

1514756 5
1514756 5

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

  • darasa.
  • Tunatumia kitanzi cha muda kuuliza mtumiaji swali lile lile mpaka mtumiaji aingie pembejeo sahihi.
  • Inaongeza

    mtumiajiInputScanner.nextLine ();

  • katika sehemu ya kukamata ya kukamata-kujaribu inahakikisha kuwa Skanai inakubali kitufe cha "ingiza" kitufe kutoka kwa mtumiaji na inafanya kazi kama njia ya kusafisha bafa ya kuingiza.
1514756 6
1514756 6

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

  • darasa kwa sababu ni sehemu ya kifurushi cha java.lang, ambayo inamaanisha kuwa inakuja kujengwa ndani.
  • Hatukuhitaji pia kufuta bafa kwa kutumia

    mtumiajiInputScanner.nextLine ();

  • katika sehemu ya kukamata ya kujaribu-kukamata.

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.

Ilipendekeza: