V tomto výukovém programu se na příkladech seznámíme s Java Scannerem a jeho metodami.
Scanner
Třída java.util
balíčku se používá ke čtení vstupních dat z různých zdrojů, jako jsou vstupní proudy, uživatelů, soubory, atd Vezměme si příklad.
Příklad 1: Čtení řádku textu pomocí skeneru
import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter your name: "); // takes input from the keyboard String name = input.nextLine(); // prints the name System.out.println("My name is " + name); // closes the scanner input.close(); ) )
Výstup
Zadejte své jméno: Kelvin Jmenuji se Kelvin
Ve výše uvedeném příkladu si všimněte řádku
Scanner input = new Scanner(System.in);
Zde jsme vytvořili objekt Scanner
pojmenovaného vstupu.
System.in
Parametr se používá, aby se vstup ze standardního vstupu. Funguje to jako přijímání vstupů z klávesnice.
Potom jsme použili nextLine()
metodu Scanner
třídy ke čtení řádku textu od uživatele.
Nyní, když máte nějakou představu Scanner
, pojďme o tom prozkoumat více.
Importovat třídu skeneru
Jak vidíme z výše uvedeného příkladu, java.util.Scanner
před použitím Scanner
třídy musíme balíček importovat .
import java.util.Scanner;
Další informace o importu balíčků najdete v balíčcích Java.
Vytvořte objekt skeneru v Javě
Jakmile importujeme balíček, můžeme vytvářet Scanner
objekty takto.
// read input from the input stream Scanner sc1 = new Scanner(InputStream input); // read input from files Scanner sc2 = new Scanner(File file); // read input from a string Scanner sc3 = new Scanner(String str);
Tady jsme vytvořili objekty Scanner
třídy, které budou číst vstupy z InputStream, File a String.
Metody skeneru Java pro vstup
Scanner
Třída nabízí celou řadu možností, které nám umožňují číst vstupy různých typů.
Metoda | Popis |
---|---|
nextInt() | přečte int hodnotu od uživatele |
nextFloat() | čte float hodnotu od uživatele |
nextBoolean() | přečte boolean hodnotu od uživatele |
nextLine() | čte řádek textu od uživatele |
next() | čte slovo od uživatele |
nextByte() | přečte byte hodnotu od uživatele |
nextDouble() | načte doubl hodnotu e od uživatele |
nextShort() | přečte short hodnotu od uživatele |
nextLong() | přečte long hodnotu od uživatele |
Příklad 2: Java Scanner nextInt ()
import java.util.Scanner; class Main ( public static void main(String() args) ( // creates a Scanner object Scanner input = new Scanner(System.in); System.out.println("Enter an integer: "); // reads an int value int data1 = input.nextInt(); System.out.println("Using nextInt(): " + data1); input.close(); ) )
Výstup
Zadejte celé číslo: 22 Pomocí nextInt (): 22
Ve výše uvedeném příkladu jsme použili nextInt()
metodu ke čtení celočíselné hodnoty.
Příklad 3: Java Scanner nextDouble ()
import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter Double value: "); // reads the double value double value = input.nextDouble(); System.out.println("Using nextDouble(): " + value); input.close(); ) )
Výstup
Zadejte dvojitou hodnotu: 33,33 Pomocí nextDouble (): 33,33
Ve výše uvedeném příkladu jsme použili nextDouble()
metodu ke čtení hodnoty s plovoucí desetinnou čárkou.
Příklad 4: Java Scanner next ()
import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter your name: "); // reads the entire word String value = input.next(); System.out.println("Using next(): " + value); input.close(); ) )
Výstup
Zadejte své jméno: Jonny Walker Pomocí next (): Jonny
Ve výše uvedeném příkladu jsme použili next()
metodu ke čtení řetězce od uživatele.
Zde jsme uvedli celé jméno. Avšak next()
metoda čte pouze křestní jméno.
Je to proto, že next()
metoda čte vstup až po znak mezery . Jakmile se objeví mezera , vrátí řetězec (kromě mezer).
Příklad 5: Java Scanner nextLine ()
import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter your name: "); // reads the entire line String value = input.nextLine(); System.out.println("Using nextLine(): " + value); input.close(); ) )
Výstup
Zadejte své jméno: Jonny Walker Pomocí nextLine (): Jonny Walker
V prvním příkladu jsme použili nextLine()
metodu ke čtení řetězce od uživatele.
Na rozdíl od next()
této nextLine()
metody přečte celý řádek vstupu včetně mezer. Tento způsob je ukončen, když narazí na další řádek znaku .
Recommended Reading: Java Scanner skipping the nextLine().
Java Scanner with BigInteger and BigDecimal
Java scanner can also be used to read the big integer and big decimal numbers.
- nextBigInteger() - reads the big integer value from the user
- nextBigDecimal() - reads the big decimal value from the user
Example 4: Read BigInteger and BigDecimal
import java.math.BigDecimal; import java.math.BigInteger; import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter a big integer: "); // reads the big integer BigInteger value1 = input.nextBigInteger(); System.out.println("Using nextBigInteger(): " + value1); System.out.print("Enter a big decimal: "); // reads the big decimal BigDecimal value2 = input.nextBigDecimal(); System.out.println("Using nextBigDecimal(): " + value2); input.close(); ) )
Output
Enter a big integer: 987654321 Using nextBigInteger(): 987654321 Enter a big decimal: 9.55555 Using nextBigDecimal(): 9.55555
In the above example, we have used the java.math.BigInteger
and java.math.BigDecimal
package to read BigInteger
and BigDecimal
respectively.
Working of Java Scanner
Scanner
Třída čte celý řádek a rozdělí linku do tokenů. Tokeny jsou malé prvky, které mají nějaký význam pro kompilátor Java. Například,
Předpokládejme, že existuje vstupní řetězec:
He is 22
V tomto případě objekt skeneru přečte celý řádek a rozdělí řetězec na tokeny: „ He “, „ is “ a „ 22 “. Objekt poté iteruje nad každým tokenem a čte každý token pomocí různých metod.
Poznámka : Ve výchozím nastavení se k dělení tokenů používají mezery.