Prilikom programiranja na Javi ili bilo kojem drugom jeziku najvjerojatnije ćete morati koristiti ulazne podatke od korisnika. Java nudi mnogo različitih metoda za dobivanje korisničkih podataka, ali najčešća i možda najjednostavnija metoda je korištenje objekta Skener.
Koraci
Metoda 1 od 2: Video zapisi
Korak 1. Uvezite klasu Skener
Možete odabrati uvoz datoteke
java.util. Skener
klase ili cijele
java.util
paket. Za uvoz klase ili paketa dodajte jedan od sljedećih redaka na sam početak koda:
uvoz java.util. Scanner; // Ovim će se uvesti samo klasa skenera. uvoz java.util.*; // Ovo će uvesti cijeli paket java.util.
Korak 2. Inicijalizirajte novi objekt skenera prosljeđivanjem datoteke
Sustav.in
ulazni tok u konstruktor.
Sustav.in
je standardni ulazni tok koji je već otvoren i spreman za isporuku ulaznih podataka. Obično ovaj tok odgovara unosu s tipkovnice.
Skener userInputScanner = novi skener (System.in);
Korak 3. Pročitajte različite vrste ulaznih podataka koje korisnik unosi
Klasa Scanner podržava dobivanje primitiva poput int, byte, short, long uz dobivanje nizova.
-
Evo nekoliko metoda koje su dostupne kroz klasu Skener:
-
Pročitajte bajt -
nextByte ()
-
Pročitaj ukratko -
nextShort ()
-
Pročitajte int -
nextInt ()
-
Čitaj dugo -
nextLong ()
-
Čitajte ploveći -
nextFloat ()
-
Čitaj dvostruko -
nextDouble ()
-
Pročitajte boolean -
nextBoolean ()
-
Pročitajte cijeli redak -
nextLine ()
-
Pročitaj riječ -
Sljedeći()
-
-
Evo primjera programa koji koristi različite metode klase Skener za dobivanje različitih vrsta unosa:
uvoz java.util. Scanner; javna klasa ScannerExample {public static void main (String args) {// Pokretanje novog skenera skenera userInputScanner = novi skener (System.in); // Testiranje nextLine (); System.out.println ("\ nKako se zovete?"); Naziv niza = userInputScanner.nextLine (); // Testiranje nextInt (); System.out.print ("Koliko mačaka imate?"); int numberOfCats = userInputScanner.nextInt (); // Testiranje nextDouble (); System.out.print ("Koliko je novca u vašem novčaniku? $"); dvostruki moneyInWallet = userInputScanner.nextDouble (); System.out.println ("\ nZdravo" + ime + "! U svom novčaniku imate" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "i $" + moneyInWallet + ". / N"); }}
Metoda 2 od 2: Rukovanje iznimkama
Korak 1. Obradite iznimke unosa
An
InputMismatchException
se baca kada korisnik unese podatke koji se ne podudaraju sa traženom vrstom. Na primjer, ako korisnik unese niz kada se traži int, program će baciti
InputMismatchException
i izlaz. Postoji nekoliko načina za rješavanje ove iznimke i rješavanje ovog problema tako da vaš program može biti siguran.
Korak 2. Upotrijebite try-catch blok za rukovanje
InputMismatchException
.
import java.util. InputMismatchException; uvoz java.util. Scanner; javna klasa ScannerExample {public static void main (String args) {// Pokretanje novog skenera skenera userInputScanner = novi skener (System.in); // Testiranje nextLine (); System.out.print ("\ nKako se zovete?"); Naziv niza = userInputScanner.nextLine (); // Testiranje nextInt (); boolean validInput = false; int brojOfCats = 0; while (! validInput) {System.out.print ("Koliko mačaka imate?"); pokušajte {numberOfCats = userInputScanner.nextInt (); validInput = true; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} // Testiranje nextDouble (); validInput = false; dvostruki moneyInWallet = 0,0; while (! validInput) {System.out.print ("Koliko novca ima u vašem novčaniku? $"); pokušajte {moneyInWallet = userInputScanner.nextDouble (); userInputScanner.nextLine (); validInput = true; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} System.out.println ("\ nZdravo" + ime + "! U svom novčaniku imate" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "i $" + moneyInWallet + ". / n "); }}
Imajte na umu da moramo uvesti
java.util. InputMismatchException
kako bismo koristili
InputMismatchException
Dodavanje
userInputScanner.nextLine ();
Korak 3. Alternativno, učinite korisnički unos sigurnim tako što ćete samo uzeti sljedeće redove iz skenera
Na ovaj način možemo osigurati da je sve što skener vrati objekt String i da neće stvoriti iznimke. Zatim, za pretvaranje nizova u cjelobrojne ili dvostruke, možemo koristiti klase Integer i Double omotač.
uvoz java.util. Scanner; javna klasa ScannerExample {public static void main (String args) {// Pokretanje novog skenera skenera userInputScanner = novi skener (System.in); // Testiranje nextLine (); System.out.print ("\ nKako se zovete?"); Naziv niza = userInputScanner.nextLine (); // Testiranje nextInt (); boolean validInput = false; int brojOfCats = 0; while (! validInput) {System.out.print ("Koliko mačaka imate?"); Niz input = userInputScanner.nextLine (); pokušajte {numberOfCats = Integer.parseInt (ulaz); validInput = true; } catch (NumberFormatException e) {validInput = false; }} // Testiranje nextDouble (); validInput = false; dvostruki moneyInWallet = 0,0; while (! validInput) {System.out.print ("Koliko novca ima u vašem novčaniku? $"); Niz input = userInputScanner.nextLine (); pokušajte {moneyInWallet = Double.parseDouble (ulaz); validInput = true; } catch (NumberFormatException e) {validInput = false; }} System.out.println ("\ nZdravo" + ime + "! U svom novčaniku imate" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "i $" + moneyInWallet + ". / n "); }}
Imajte na umu da ovdje nismo morali uvesti
NumberFormatException
Također nismo morali izbrisati međuspremnik pomoću
userInputScanner.nextLine ();
Savjeti
- Za više informacija o korištenju klase Skener pogledajte API skenera.
- Uvijek koristite.next () umjesto.nextLine () za čitanje sljedeće riječi, jer.nextLine () može imati greške.