U ovom uputstvu uz primjere ćemo naučiti o Java Scanneru i njegovim metodama.
Scanner
Razred java.util
paket se koristi za čitanje ulaznih podataka iz različitih izvora kao što su ulazne tokove, korisnike, datoteke, itd Uzmimo primjer.
Primjer 1: Pročitajte redak teksta pomoću skenera
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(); ) )
Izlaz
Unesite svoje ime: Kelvin Zovem se Kelvin
U gornjem primjeru primijetite redak
Scanner input = new Scanner(System.in);
Ovdje smo stvorili objekt Scanner
imenovanog unosa.
System.in
Parametar se koristi da se ulaz iz standardnog ulaza. Djeluje poput primanja unosa s tipkovnice.
Tada smo koristili nextLine()
metodu Scanner
klase za čitanje retka teksta od korisnika.
Sad kad imate predodžbu o tome Scanner
, istražimo više o tome.
Uvoz klase skenera
Kao što vidimo iz gornjeg primjera, moramo uvesti java.util.Scanner
paket prije nego što možemo koristiti Scanner
klasu.
import java.util.Scanner;
Da biste saznali više o uvozu paketa, posjetite Java pakete.
Stvorite objekt skenera u Javi
Nakon što uvozimo paket, evo kako možemo stvoriti Scanner
objekte.
// 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);
Ovdje smo stvorili objekte Scanner
klase koji će čitati ulazne podatke iz InputStream, File i String.
Metode Java Scannera za unos
Predavanje Scanner
pruža razne metode koje nam omogućuju čitanje unosa različitih vrsta.
Metoda | Opis |
---|---|
nextInt() | čita int vrijednost od korisnika |
nextFloat() | čita float vrijednost iz obrasca korisnika |
nextBoolean() | čita boolean vrijednost od korisnika |
nextLine() | čita redak teksta od korisnika |
next() | čita riječ od korisnika |
nextByte() | čita byte vrijednost od korisnika |
nextDouble() | čita doubl e vrijednost od korisnika |
nextShort() | čita short vrijednost od korisnika |
nextLong() | čita long vrijednost od korisnika |
Primjer 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(); ) )
Izlaz
Unesite cijeli broj: 22 Korištenjem nextInt (): 22
U gornjem primjeru koristili smo nextInt()
metodu za čitanje cjelobrojne vrijednosti.
Primjer 3: Java skener 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(); ) )
Izlaz
Unesite dvostruku vrijednost: 33,33 Korištenjem nextDouble (): 33,33
U gornjem primjeru koristili smo nextDouble()
metodu za čitanje vrijednosti s pomičnom zarezom.
Primjer 4: Sljedeći Java Scanner ()
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(); ) )
Izlaz
Unesite svoje ime: Jonny Walker Koristeći next (): Jonny
U gornjem primjeru koristili smo next()
metodu za čitanje niza od korisnika.
Evo, dali smo puno ime. Međutim, next()
metoda čita samo prvo ime.
To je zato što next()
metoda čita ulaz do razmaka . Jednom kad se nađe razmak , vraća niz (isključujući razmak).
Primjer 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(); ) )
Izlaz
Unesite svoje ime: Jonny Walker Korištenjem nextLine (): Jonny Walker
U prvom primjeru koristili smo nextLine()
metodu za čitanje niza od korisnika.
Za razliku od toga next()
, nextLine()
metoda čita cijeli redak unosa, uključujući razmake. Metoda se prekida kada naiđe na sljedeći redak karakter, .
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
Predavanje Scanner
čita čitav redak i red dijeli na žetone. Tokeni su mali elementi koji za Java kompajler imaju neko značenje. Na primjer,
Pretpostavimo da postoji ulazni niz:
He is 22
U tom će slučaju objekt skenera pročitati čitav redak i podijeliti niz u znakove: " He ", " is " i " 22 ". Zatim se objekt prevlači preko svakog tokena i čita svaki token koristeći njegove različite metode.
Napomena : Prema zadanim postavkama razmak se koristi za dijeljenje tokena.