Jak získat vstup od uživatele v Javě (s obrázky)

Obsah:

Jak získat vstup od uživatele v Javě (s obrázky)
Jak získat vstup od uživatele v Javě (s obrázky)

Video: Jak získat vstup od uživatele v Javě (s obrázky)

Video: Jak získat vstup od uživatele v Javě (s obrázky)
Video: Plague Inc: Evolved #13 Грибок Крайне Сложная Без Генов 2024, Smět
Anonim

Při programování v Javě nebo v jiném jazyce budete s největší pravděpodobností muset použít vstupní informace od uživatele. Java poskytuje mnoho různých metod pro získání informací o uživateli, ale nejběžnější a možná nejsnadněji implementovatelnou metodou je použití objektu Scanner.

Kroky

Metoda 1 ze 2: Videa

1514756 1
1514756 1

Krok 1. Importujte třídu Scanner

Můžete se buď rozhodnout importovat soubor

java.util. Scanner

třídu nebo celou

java.util

balík. Chcete -li importovat třídu nebo balíček, přidejte na začátek kódu jeden z následujících řádků:

    import java.util. Scanner; // Tím se importuje pouze třída Scanner. import java.util.*; // Tím se importuje celý balíček java.util.

1514756 2
1514756 2

Krok 2. Inicializujte nový objekt Scanner předáním souboru

System.in

vstupní proud do konstruktoru.

System.in

je standardní vstupní proud, který je již otevřený a připraven dodávat vstupní data. Tento stream obvykle odpovídá vstupu z klávesnice.

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

1514756 3
1514756 3

Krok 3. Přečtěte si různé druhy vstupních dat, která uživatel zadá

Třída Scanner podporuje kromě získávání řetězců také získání primitiv, jako je int, byte, short, long.

  • Zde je několik metod, které jsou k dispozici prostřednictvím třídy Scanner:

    • Přečíst bajt -

      nextByte ()

    • Přečtěte si krátký -

      nextShort ()

    • Přečíst int -

      nextInt ()

    • Čtěte dlouho -

      dalšíDlouhé ()

    • Přečtěte si plovák -

      nextFloat ()

    • Přečíst dvojité -

      dalšíDouble ()

    • Přečtěte si boolean -

      dalšíBoolean ()

    • Přečíst celý řádek -

      nextLine ()

    • Přečíst slovo -

      další()

  • Zde je příklad programu, který používá různé metody třídy Scanner k získání různých typů vstupu:

      import java.util. Scanner; public class ScannerExample {public static void main (String args) {// Zahájit nový Scanner Scanner userInputScanner = nový Scanner (System.in); // Testování nextLine (); System.out.println ("\ nJak se jmenujete?"); Název řetězce = userInputScanner.nextLine (); // Testování nextInt (); System.out.print („Kolik máte koček?“); int numberOfCats = userInputScanner.nextInt (); // Testování nextDouble (); System.out.print („Kolik peněz máte ve své peněžence? $“); double moneyInWallet = userInputScanner.nextDouble (); System.out.println ("\ nDobrý den" + jméno + "! V peněžence máte" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "a $" + moneyInWallet + ". / N"); }}

Metoda 2 ze 2: Zpracování výjimek

1514756 4
1514756 4

Krok 1. Zpracování výjimek vstupu

An

InputMismatchException

je vyvoláno, když uživatel zadá data, která neodpovídají požadovanému typu. Pokud například uživatel zadá řetězec, když je požadován int, program vyvolá

InputMismatchException

a odejít. Existuje několik způsobů, jak tuto výjimku zpracovat a vyřešit tento problém tak, aby váš program mohl být spolehlivý.

1514756 5
1514756 5

Krok 2. Pomocí bloku try-catch zvládněte

InputMismatchException

.

    import java.util. InputMismatchException; import java.util. Scanner; public class ScannerExample {public static void main (String args) {// Zahájit nový Scanner Scanner userInputScanner = nový Scanner (System.in); // Testování nextLine (); System.out.print ("\ nJak se jmenujete?"); Název řetězce = userInputScanner.nextLine (); // Testování nextInt (); boolean validInput = false; int numberOfCats = 0; while (! validInput) {System.out.print („Kolik koček máte?“); zkuste {numberOfCats = userInputScanner.nextInt (); validInput = true; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} // Testování nextDouble (); validInput = false; double moneyInWallet = 0,0; while (! validInput) {System.out.print ("Kolik peněz máte ve své peněžence? $"); zkuste {moneyInWallet = userInputScanner.nextDouble (); userInputScanner.nextLine (); validInput = true; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} System.out.println ("\ nDobrý den" + jméno + "! V peněžence máte" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "a $" + moneyInWallet + ". / n "); }}

  • Všimněte si, že musíme importovat

    java.util. InputMismatchException

    abyste mohli používat

    InputMismatchException

  • třída.
  • Pomocí smyčky while položíme uživateli stejnou otázku, dokud uživatel nezadá správný vstup.
  • Přidávání

    userInputScanner.nextLine ();

  • v catch části try-catch zajišťuje, že skener potvrdí stisknutí klávesy „Enter“od uživatele a funguje jako způsob, jak vymazat vstupní vyrovnávací paměť.
1514756 6
1514756 6

Krok 3. Případně zajistěte, aby byl vstup uživatele spolehlivý, a to tak, že ze skeneru vezme pouze další řádky

Tímto způsobem můžeme zajistit, že vše, co skener vrátí, je objekt String a nevytvoří žádné výjimky. Potom pro převod řetězců na celá čísla nebo zdvojnásobení můžeme použít třídy obálky Integer a Double.

    import java.util. Scanner; public class ScannerExample {public static void main (String args) {// Zahájit nový Scanner Scanner userInputScanner = nový Scanner (System.in); // Testování nextLine (); System.out.print ("\ nJak se jmenujete?"); Název řetězce = userInputScanner.nextLine (); // Testování nextInt (); boolean validInput = false; int numberOfCats = 0; while (! validInput) {System.out.print („Kolik koček máte?“); Řetězcový vstup = userInputScanner.nextLine (); zkusit {numberOfCats = Integer.parseInt (vstup); validInput = true; } catch (NumberFormatException e) {validInput = false; }} // Testování nextDouble (); validInput = false; double moneyInWallet = 0,0; while (! validInput) {System.out.print ("Kolik peněz máte ve své peněžence? $"); Řetězcový vstup = userInputScanner.nextLine (); zkuste {moneyInWallet = Double.parseDouble (vstup); validInput = true; } catch (NumberFormatException e) {validInput = false; }} System.out.println ("\ nDobrý den" + jméno + "! Máte v peněžence" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "a $" + moneyInWallet + " n "); }}

  • Zde jsme nemuseli importovat soubor

    NumberFormatException

  • třídy, protože je součástí balíčku java.lang, což znamená, že je integrován.
  • Rovněž jsme nemuseli vymazat vyrovnávací paměť pomocí

    userInputScanner.nextLine ();

  • v záchytné části try-catch.

Tipy

  • Další informace o používání třídy Scanner najdete v rozhraní Scanner API.
  • Ke čtení dalšího slova vždy použijte.next () místo.nextLine (), protože.nextLine () může být buggy.

Doporučuje: