Kako dobiti unos od korisnika na Javi (sa slikama)

Sadržaj:

Kako dobiti unos od korisnika na Javi (sa slikama)
Kako dobiti unos od korisnika na Javi (sa slikama)

Video: Kako dobiti unos od korisnika na Javi (sa slikama)

Video: Kako dobiti unos od korisnika na Javi (sa slikama)
Video: Leslie Kean on David Grusch (UFO Whistleblower): Non-Human Intelligence, Recovered UFOs, UAP, & more 2024, Maj
Anonim

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 informacija, ali najčešća i možda najjednostavnija metoda je korištenje objekta Skener.

Koraci

Metoda 1 od 2: Video zapisi

1514756 1
1514756 1

Korak 1. Uvezite klasu Skener

Možete izabrati uvoz u

java.util. Scanner

klase ili cele

java.util

paket. Da biste uvezli klasu ili paket, dodajte jedan od sljedećih redova na sam početak koda:

    import java.util. Scanner; // Ovo će uvesti samo klasu Scanner. import java.util.*; // Ovo će uvesti cijeli paket java.util.

1514756 2
1514756 2

Korak 2. Inicijalizirajte novi objekt skenera prosljeđivanjem

System.in

ulazni tok u konstruktor.

System.in

je standardni ulazni tok koji je već otvoren i spreman za isporuku ulaznih podataka. Obično ovaj tok odgovara unosu sa tastature.

    Skener userInputScanner = novi skener (System.in);

1514756 3
1514756 3

Korak 3. Pročitajte različite vrste ulaznih podataka koje korisnik unosi

Klasa Scanner podržava dobijanje primitiva kao što su int, byte, short, long pored dobijanja nizova.

  • Evo nekoliko metoda koje su dostupne kroz klasu Skener:

    • Pročitajte bajt -

      nextByte ()

    • Pročitajte kratak tekst -

      nextShort ()

    • Pročitajte int -

      nextInt ()

    • Čitajte dugo -

      nextLong ()

    • Čitajte float -

      nextFloat ()

    • Čitaj dvostruko -

      nextDouble ()

    • Čitajte boolean -

      nextBoolean ()

    • Pročitajte ceo red -

      nextLine ()

    • Pročitaj riječ -

      sljedeći()

  • Evo primjera programa koji koristi različite metode klase Scanner za dobivanje različitih vrsta unosa:

      import 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?"); String name = userInputScanner.nextLine (); // Testiranje nextInt (); System.out.print ("Koliko mačaka imate?"); int numberOfCats = userInputScanner.nextInt (); // Testiranje nextDouble (); System.out.print ("Koliko novca ima 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

1514756 4
1514756 4

Korak 1. Rukujte iznimkama unosa

An

InputMismatchException

se baca kada korisnik unese podatke koji se ne podudaraju sa traženim tipom. Na primjer, ako korisnik unese niz kada se traži int, program će baciti

InputMismatchException

i izađite. Postoji nekoliko načina za rješavanje ovog izuzetka i rješavanje ovog problema tako da vaš program može biti siguran.

1514756 5
1514756 5

Korak 2. Upotrijebite try-catch blok za rukovanje

InputMismatchException

.

    import java.util. InputMismatchException; import 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?"); String name = userInputScanner.nextLine (); // Testiranje nextInt (); boolean validInput = false; int numberOfCats = 0; while (! validInput) {System.out.print ("Koliko mačaka imate?"); probajte {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? $"); probajte {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 biste koristili

    InputMismatchException

  • razred.
  • Koristimo while petlju da postavimo korisniku isto pitanje sve dok korisnik ne unese ispravan unos.
  • Dodavanje

    userInputScanner.nextLine ();

  • u dijelu catch-a try-catch-a osigurava da skener potvrdi pritiskanje tipke "enter" od korisnika i funkcionira kao način za brisanje ulaznog međuspremnika.
1514756 6
1514756 6

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 cijele ili dvostruke, možemo koristiti klase Integer i Double omotač.

    import 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?"); String name = userInputScanner.nextLine (); // Testiranje nextInt (); boolean validInput = false; int numberOfCats = 0; while (! validInput) {System.out.print ("Koliko mačaka imate?"); String input = userInputScanner.nextLine (); probajte {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? $"); String input = userInputScanner.nextLine (); probajte {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 uvoziti

    NumberFormatException

  • class jer je dio paketa java.lang, što znači da dolazi ugrađen.
  • Također nismo morali očistiti bafer pomoću

    userInputScanner.nextLine ();

  • u dijelu ulova pokušaj ulova.

Savjeti

  • Za više informacija o korištenju klase skenera pogledajte API skenera.
  • Uvijek koristite.next () umjesto.nextLine () za čitanje sljedeće riječi, jer.nextLine () može imati greške.

Preporučuje se: