Ako získať vstup od používateľa v Jave (s obrázkami)

Obsah:

Ako získať vstup od používateľa v Jave (s obrázkami)
Ako získať vstup od používateľa v Jave (s obrázkami)

Video: Ako získať vstup od používateľa v Jave (s obrázkami)

Video: Ako získať vstup od používateľa v Jave (s obrázkami)
Video: My Epic Lesbian Review of Xena: Warrior Princess 2024, Apríl
Anonim

Pri programovaní v jazyku Java alebo v inom jazyku budete pravdepodobne potrebovať použiť vstupné informácie od používateľa. Java poskytuje mnoho rôznych spôsobov získavania informácií o používateľoch, ale najbežnejšou a možno najľahšie implementovateľnou metódou je použitie objektu Scanner.

Kroky

Metóda 1 z 2: Videá

1514756 1
1514756 1

Krok 1. Importujte triedu skenera

Môžete sa buď rozhodnúť importovať súbor

java.util. Scanner

triedu alebo celú

java.util

balík. Ak chcete importovať triedu alebo balík, pridajte na začiatok kódu jeden z nasledujúcich riadkov:

    import java.util. Scanner; // Toto importuje iba triedu Scanner. import java.util.*; // Toto importuje celý balík java.util.

1514756 2
1514756 2

Krok 2. Inicializujte nový objekt Scanner prejdením

System.in

vstupný tok do konštruktora.

System.in

je štandardný vstupný tok, ktorý je už otvorený a je pripravený dodávať vstupné údaje. Tento stream zvyčajne zodpovedá vstupu z klávesnice.

    Skener userInputScanner = nový skener (System.in);

1514756 3
1514756 3

Krok 3. Prečítajte si rôzne druhy vstupných údajov, ktoré používateľ zadá

Trieda Scanner okrem získavania reťazcov podporuje aj získavanie primitívov, ako sú int, byte, short, long.

  • Tu je niekoľko metód, ktoré sú k dispozícii prostredníctvom triedy Scanner:

    • Prečítajte si bajt -

      nextByte ()

    • Prečítajte si krátke -

      nextShort ()

    • Prečítajte si int -

      nextInt ()

    • Čítajte dlho -

      nextLong ()

    • Prečítajte si plavák -

      nextFloat ()

    • Prečítajte si dvojnásobok -

      nextDouble ()

    • Prečítajte si boolean -

      nextBoolean ()

    • Prečítajte si celý riadok -

      nextLine ()

    • Prečítajte si slovo -

      Ďalšie()

  • Tu je príklad programu, ktorý používa rôzne metódy triedy Scanner na získanie rôznych typov vstupov:

      import java.util. Scanner; public class ScannerPriklad {public static void main (String args) {// Spustenie nového skenera Skener userInputScanner = nový skener (System.in); // Testovanie nextLine (); System.out.println ("\ nAko sa voláte?"); Názov reťazca = userInputScanner.nextLine (); // Testovanie nextInt (); System.out.print („Koľko máte mačiek?“); int numberOfCats = userInputScanner.nextInt (); // Testovanie nextDouble (); System.out.print („Koľko peňazí máte vo svojej peňaženke? $“); double moneyInWallet = userInputScanner.nextDouble (); System.out.println ("\ nAhoj" + meno + "! V peňaženke máte" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "a $" + moneyInWallet + ". / N"); }}

Metóda 2 z 2: Zaobchádzanie s výnimkami

1514756 4
1514756 4

Krok 1. Zaobchádzajte s výnimkami zo vstupu

An

InputMismatchException

sa vyvolá, keď používateľ zadá údaje, ktoré sa nezhodujú s požadovaným typom. Ak napríklad používateľ zadá reťazec, keď je požiadaný o int, program vyvolá príponu

InputMismatchException

a výjazd. Existuje niekoľko spôsobov, ako zvládnuť túto výnimku a vyriešiť tento problém tak, aby bol váš program spoľahlivý.

1514756 5
1514756 5

Krok 2. Na zvládnutie problému použite blok try-catch

InputMismatchException

.

    import java.util. InputMismatchException; import java.util. Scanner; public class ScannerExample {public static void main (String args) {// Spustenie nového skenera Skener userInputScanner = nový skener (System.in); // Testovanie nextLine (); System.out.print ("\ nAko sa voláte?"); Názov reťazca = userInputScanner.nextLine (); // Testovanie nextInt (); boolean validInput = false; int numberOfCats = 0; while (! validInput) {System.out.print („Koľko mačiek máš?“); skúste {numberOfCats = userInputScanner.nextInt (); validInput = true; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} // Testovanie nextDouble (); validInput = false; zdvojnásobenie peňažnej peňaženky = 0,0; while (! validInput) {System.out.print ("Koľko peňazí máte vo svojej peňaženke? $"); skúste {moneyInWallet = userInputScanner.nextDouble (); userInputScanner.nextLine (); validInput = true; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} System.out.println ("\ nAhoj" + meno + "! V peňaženke máte" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "a $" + moneyInWallet + ". / n "); }}

  • Upozorňujeme, že musíme importovať

    java.util. InputMismatchException

    aby ste mohli používať

    InputMismatchException

  • trieda.
  • Cyklus while používame na to, aby sme používateľovi položili rovnakú otázku, kým používateľ nezadá správny vstup.
  • Pridáva sa

    userInputScanner.nextLine ();

  • v záchytnej časti try-catch zaisťuje, že skener potvrdí stlačenie klávesu „Enter“od používateľa a funguje ako spôsob vymazania vstupnej vyrovnávacej pamäte.
1514756 6
1514756 6

Krok 3. Prípadne urobte používateľský vstup spoľahlivým tak, že zo skenera vezmete iba ďalšie riadky

Týmto spôsobom môžeme zaistiť, že všetko, čo skener vráti, je objekt String a nevytvorí žiadne výnimky. Potom na konverziu reťazcov na celé čísla alebo zdvojnásobenie môžeme použiť triedy obalov Integer a Double.

    import java.util. Scanner; public class ScannerPriklad {public static void main (String args) {// Spustenie nového skenera Skener userInputScanner = nový skener (System.in); // Testovanie nextLine (); System.out.print ("\ nAko sa voláte?"); Názov reťazca = userInputScanner.nextLine (); // Testovanie nextInt (); boolean validInput = false; int numberOfCats = 0; while (! validInput) {System.out.print („Koľko mačiek máš?“); Vstup reťazca = userInputScanner.nextLine (); skúste {numberOfCats = Integer.parseInt (vstup); validInput = true; } catch (NumberFormatException e) {validInput = false; }} // Testovanie nextDouble (); validInput = false; dvojnásobok moneyInWallet = 0,0; while (! validInput) {System.out.print ("Koľko peňazí máte vo svojej peňaženke? $"); Vstup reťazca = userInputScanner.nextLine (); skúste {moneyInWallet = Double.parseDouble (vstup); validInput = true; } catch (NumberFormatException e) {validInput = false; }} System.out.println ("\ nAhoj" + meno + "! V peňaženke máte" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "a $" + moneyInWallet + ". / n "); }}

  • Upozorňujeme, že tu sme nemuseli importovať súbor

    NumberFormatException

  • triedy, pretože je súčasťou balíka java.lang, čo znamená, že je vstavaný.
  • Tiež sme nemuseli vymazať vyrovnávaciu pamäť pomocou

    userInputScanner.nextLine ();

  • v záchytnej časti pokusného úlovku.

Tipy

  • Ďalšie informácie o používaní triedy Scanner nájdete v rozhraní Scanner API.
  • Na čítanie nasledujúceho slova vždy používajte.next () namiesto.nextLine (), pretože.nextLine () môže byť buggy.

Odporúča: