Hoe om 'n gebruiker van Java in te voer (met foto's)

INHOUDSOPGAWE:

Hoe om 'n gebruiker van Java in te voer (met foto's)
Hoe om 'n gebruiker van Java in te voer (met foto's)

Video: Hoe om 'n gebruiker van Java in te voer (met foto's)

Video: Hoe om 'n gebruiker van Java in te voer (met foto's)
Video: How to Beat Prion - Brutal Mode in 2020 | Plague Inc. Prion Walkthrough (No Commentary) 2024, April
Anonim

As u in Java of in enige ander taal programmeer, moet u waarskynlik invoerinligting van 'n gebruiker gebruik. Java bied baie verskillende metodes om gebruikersinligting in te gaan, maar die mees algemene en miskien maklikste metode is om die Scanner -voorwerp te gebruik.

Stappe

Metode 1 van 2: Video's

1514756 1
1514756 1

Stap 1. Voer die skandeerderklas in

U kan óf kies om die

java.util. Scanner

klas of die geheel

java.util

pakket. Om 'n klas of pakket in te voer, voeg een van die volgende reëls by die begin van u kode:

    invoer java.util. Scanner; // Dit sal slegs die skandeerderklas invoer. invoer java.util.*; // Dit sal die hele java.util -pakket invoer.

1514756 2
1514756 2

Stap 2. Initialiseer 'n nuwe skandeerder -voorwerp deur die

Stelsel.in

invoerstroom na die konstruktor.

Stelsel.in

is die standaard insetstroom wat reeds oop is en gereed is om insetdata te verskaf. Gewoonlik stem hierdie stroom ooreen met sleutelbordinvoer.

    Skandeerder userInputScanner = nuwe skandeerder (System.in);

1514756 3
1514756 3

Stap 3. Lees verskillende soorte insetdata in wat die gebruiker invoer

Die Scanner -klas ondersteun primitiewe soos int, byte, kort, lank, sowel as snare.

  • Hier is 'n paar metodes wat beskikbaar is deur die Scanner -klas:

    • Lees 'n greep -

      nextByte ()

    • Lees 'n kort -

      volgende Kort ()

    • Lees 'n int -

      nextInt ()

    • Lees lank -

      nextLong ()

    • Lees 'n vlot -

      nextFloat ()

    • Lees 'n dubbel -

      volgendeDubbel ()

    • Lees 'n boolean -

      volgendeBoole ()

    • Lees 'n volledige reël -

      nextLine ()

    • Lees 'n woord -

      volgende ()

  • Hier is 'n voorbeeld van 'n program wat verskillende metodes van die Scanner -klas gebruik om verskillende tipes insette te kry:

      invoer java.util. Scanner; openbare klas ScannerExample {public static void main (String args) {// Begin 'n nuwe Scanner Scanner userInputScanner = nuwe Scanner (System.in); // Toets nextLine (); System.out.println ("\ nWat is u naam?"); Stringnaam = userInputScanner.nextLine (); // Toets nextInt (); System.out.print ("Hoeveel katte het u?"); int numberOfCats = userInputScanner.nextInt (); // Toets nextDouble (); System.out.print ("Hoeveel geld is in u beursie? $"); dubbele geldInWallet = userInputScanner.nextDouble (); System.out.println ("\ nHallo" + naam + "! U het" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "en $" + moneyInWallet + "in u beursie. / N"); }}

Metode 2 van 2: Die hantering van uitsonderings

1514756 4
1514756 4

Stap 1. Hanteer insette -uitsonderings

'N

InputMismatchException

word gegooi as die gebruiker data invoer wat nie ooreenstem met die aangevraagde tipe nie. Byvoorbeeld, as die gebruiker 'n string invoer wanneer 'n int gevra word, sal die program 'n

InputMismatchException

en verlaat. Daar is verskillende maniere om hierdie uitsondering te hanteer en hierdie probleem op te los, sodat u program onfeilbaar kan wees.

1514756 5
1514756 5

Stap 2. Gebruik 'n probeer-vang-blok om die

InputMismatchException

.

    voer java.util. InputMismatchException in; invoer java.util. Scanner; openbare klas ScannerExample {public static void main (String args) {// Begin 'n nuwe Scanner Scanner userInputScanner = nuwe Scanner (System.in); // Toets nextLine (); System.out.print ("\ nWat is u naam?"); Stringnaam = userInputScanner.nextLine (); // Toets nextInt (); boolean validInput = false; int numberOfCats = 0; terwyl (! validInput) {System.out.print ("Hoeveel katte het jy?"); probeer {numberOfCats = userInputScanner.nextInt (); validInput = waar; } vang (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }}} // Toets volgendeDubbel (); validInput = false; dubbele geldInWallet = 0.0; terwyl (! validInput) {System.out.print ("Hoeveel geld is in u beursie? $"); probeer {moneyInWallet = userInputScanner.nextDouble (); userInputScanner.nextLine (); validInput = waar; } vang (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} System.out.println ("\ nHallo" + naam + "! Jy het" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "en $" + moneyInWallet + "in jou beursie. / n "); }}

  • Let daarop dat ons moet invoer

    java.util. InputMismatchException

    om die

    InputMismatchException

  • klas.
  • Ons gebruik 'n while -lus om dieselfde vraag aan die gebruiker te stel totdat die gebruiker die korrekte invoer invoer.
  • Voeg by

    userInputScanner.nextLine ();

  • in die vanggedeelte van die probeer-vang verseker dat die skandeerder die "enter" -toets van die gebruiker erken en funksioneer as 'n manier om die invoerbuffer skoon te maak.
1514756 6
1514756 6

Stap 3. Alternatiewelik kan u die invoer van die gebruiker onfeilbaar maak deur slegs die volgende reëls van die skandeerder in te neem

Op hierdie manier kan ons verseker dat alles wat die skandeerder teruggee 'n string -voorwerp is en dat daar geen uitsonderings is nie. Om die snare na heelgetalle of dubbels te omskep, kan ons die klasse Heelgetal en Dubbelomslag gebruik.

    invoer java.util. Scanner; openbare klas ScannerExample {public static void main (String args) {// Begin 'n nuwe Scanner Scanner userInputScanner = nuwe Scanner (System.in); // Toets nextLine (); System.out.print ("\ nWat is u naam?"); Stringnaam = userInputScanner.nextLine (); // Toets nextInt (); boolean validInput = false; int numberOfCats = 0; terwyl (! validInput) {System.out.print ("Hoeveel katte het jy?"); Stringinvoer = userInputScanner.nextLine (); probeer {numberOfCats = Integer.parseInt (input); validInput = waar; } vang (NumberFormatException e) {validInput = false; }}} // Toets nextDouble (); validInput = false; dubbele geldInWallet = 0.0; terwyl (! validInput) {System.out.print ("Hoeveel geld is in u beursie? $"); Stringinvoer = userInputScanner.nextLine (); probeer {moneyInWallet = Double.parseDouble (invoer); validInput = waar; } vang (NumberFormatException e) {validInput = false; }} System.out.println ("\ nHallo" + naam + "! Jy het" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "en $" + moneyInWallet + "in jou beursie. / n "); }}

  • Let daarop dat ons nie die

    NumberFormatException

  • klas omdat dit deel is van die java.lang -pakket, wat beteken dat dit ingebou is.
  • Ons hoef ook nie die buffer skoon te maak met behulp van

    userInputScanner.nextLine ();

  • in die vanggedeelte van die probeer-vang.

Wenke

  • Sien die Skandeerder -API vir meer inligting oor die gebruik van die skandeerderklas.
  • Gebruik altyd.next () in plaas van.nextLine () om die volgende woord te lees, want.nextLine () kan karig wees.

Aanbeveel: