Cum să obțineți intrări de la un utilizator în Java (cu imagini)

Cuprins:

Cum să obțineți intrări de la un utilizator în Java (cu imagini)
Cum să obțineți intrări de la un utilizator în Java (cu imagini)

Video: Cum să obțineți intrări de la un utilizator în Java (cu imagini)

Video: Cum să obțineți intrări de la un utilizator în Java (cu imagini)
Video: Plague Inc: The Cure - Prion Mega-Brutal Guide 2024, Mai
Anonim

Când programați în Java sau în orice alt limbaj, cel mai probabil va trebui să utilizați informațiile de intrare de la un utilizator. Java oferă multe metode diferite pentru a obține informații despre utilizatori, dar cea mai comună și probabil cea mai ușoară metodă de implementare este utilizarea obiectului Scanner.

Pași

Metoda 1 din 2: videoclipuri

1514756 1
1514756 1

Pasul 1. Importați clasa Scanner

Puteți alege fie să importați fișierul

java.util. Scanner

clasa sau întreaga

java.util

pachet. Pentru a importa o clasă sau un pachet, adăugați una dintre următoarele rânduri chiar la începutul codului:

    import java.util. Scanner; // Aceasta va importa doar clasa Scanner. import java.util. *; // Aceasta va importa întregul pachet java.util.

1514756 2
1514756 2

Pasul 2. Inițializați un nou obiect Scanner prin trecerea

System.in

flux de intrare către constructor.

System.in

este fluxul de intrare standard care este deja deschis și gata să furnizeze date de intrare. De obicei, acest flux corespunde intrării tastaturii.

    Scanner userInputScanner = Scanner nou (System.in);

1514756 3
1514756 3

Pasul 3. Citiți diferite tipuri de date de intrare pe care le introduce utilizatorul

Clasa Scanner acceptă obținerea primitivelor precum int, octet, scurt, lung pe lângă obținerea șirurilor.

  • Iată câteva metode disponibile prin clasa Scanner:

    • Citiți un octet -

      nextByte ()

    • Citește un scurt -

      nextShort ()

    • Citiți un int -

      nextInt ()

    • Citește mult -

      nextLong ()

    • Citiți un plutitor -

      nextFloat ()

    • Citește o dublă -

      nextDouble ()

    • Citiți un boolean -

      nextBoolean ()

    • Citiți o linie completă -

      nextLine ()

    • Citește un cuvânt -

      Următorul()

  • Iată un exemplu de program care utilizează diferite metode ale clasei Scanner pentru a obține diferite tipuri de intrare:

      import java.util. Scanner; public class ScannerExample {public static void main (String args) {// Inițiază un nou Scanner Scanner userInputScanner = nou Scanner (System.in); // Testarea nextLine (); System.out.println ("\ nCum vă chemați?"); Numele șirului = userInputScanner.nextLine (); // Testarea nextInt (); System.out.print („Câte pisici ai?”); int numberOfCats = userInputScanner.nextInt (); // Testarea nextDouble (); System.out.print („Câți bani sunt în portofel? $”); moneyInWallet = userInputScanner.nextDouble (); System.out.println ("\ nBună ziua" + nume + "! Aveți" + numărOfCats + (numberOfCats> 1? "Pisici": "pisică") + "și $" + moneyInWallet + "în portofel. / N"); }}

Metoda 2 din 2: Manevrarea excepțiilor

1514756 4
1514756 4

Pasul 1. Gestionează excepțiile de intrare

Un

InputMismatchException

este aruncat atunci când utilizatorul introduce date care nu se potrivesc cu tipul solicitat. De exemplu, dacă utilizatorul introduce un șir când este solicitat un int, programul va arunca un

InputMismatchException

și ieși. Există mai multe moduri de a rezolva această excepție și de a rezolva această problemă, astfel încât programul dvs. să fie infailibil.

1514756 5
1514756 5

Pasul 2. Folosiți un bloc de încercare pentru a gestiona

InputMismatchException

.

    import java.util. InputMismatchException; import java.util. Scanner; public class ScannerExample {public static void main (String args) {// Inițiază un nou Scanner Scanner userInputScanner = nou Scanner (System.in); // Testarea nextLine (); System.out.print ("\ nCum vă chemați?"); Numele șirului = userInputScanner.nextLine (); // Testarea nextInt (); boolean validInput = false; int numberOfCats = 0; while (! validInput) {System.out.print („Câte pisici ai?”); încercați {numberOfCats = userInputScanner.nextInt (); validInput = adevărat; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} // Testarea nextDouble (); validInput = false; dublu bani În portofel = 0,0; while (! validInput) {System.out.print („Câți bani sunt în portofel? $”); încercați {moneyInWallet = userInputScanner.nextDouble (); userInputScanner.nextLine (); validInput = adevărat; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} System.out.println ("\ nBună ziua" + nume + "! Aveți" + numberOfCats + (numberOfCats> 1? "Cats": "pisică") + "și $" + moneyInWallet + "în portofel. / n "); }}

  • Rețineți că trebuie să importăm

    java.util. InputMismatchException

    pentru a utiliza

    InputMismatchException

  • clasă.
  • Folosim o buclă while pentru a pune utilizatorului aceeași întrebare până când utilizatorul introduce intrarea corectă.
  • Se adaugă

    userInputScanner.nextLine ();

  • în partea de captură a încercării de captură se asigură că scanerul recunoaște apăsarea tastei „enter” de la utilizator și funcționează ca o modalitate de a goli tamponul de intrare.
1514756 6
1514756 6

Pasul 3. Alternativ, faceți ca intrarea utilizatorului să fie infailibilă luând numai rândurile următoare din scaner

În acest fel, ne putem asigura că tot ceea ce returnează scanerul este un obiect șir și nu va crea excepții. Apoi, pentru a converti șirurile în numere întregi sau duble, putem folosi clasele Integer și Double wrapper.

    import java.util. Scanner; public class ScannerExample {public static void main (String args) {// Inițiază un nou Scanner Scanner userInputScanner = nou Scanner (System.in); // Testarea nextLine (); System.out.print ("\ nCum vă chemați?"); Numele șirului = userInputScanner.nextLine (); // Testarea nextInt (); boolean validInput = false; int numberOfCats = 0; while (! validInput) {System.out.print („Câte pisici ai?”); Șir de intrare = userInputScanner.nextLine (); încercați {numberOfCats = Integer.parseInt (input); validInput = adevărat; } catch (NumberFormatException e) {validInput = false; }} // Testarea nextDouble (); validInput = false; dublu bani În portofel = 0,0; while (! validInput) {System.out.print („Câți bani sunt în portofel? $”); Șir de intrare = userInputScanner.nextLine (); încercați {moneyInWallet = Double.parseDouble (input); validInput = adevărat; } catch (NumberFormatException e) {validInput = false; }} System.out.println ("\ nBună ziua" + nume + "! Aveți" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "și $" + moneyInWallet + "în portofel. / n "); }}

  • Rețineți că aici nu a trebuit să importăm

    NumberFormatException

  • class, deoarece face parte din pachetul java.lang, ceea ce înseamnă că vine încorporat.
  • De asemenea, nu a trebuit să ștergem tamponul folosind

    userInputScanner.nextLine ();

  • în partea de captură a probei de încercare.

sfaturi

  • Consultați API-ul Scanner pentru mai multe informații despre utilizarea clasei Scanner.
  • Folosiți întotdeauna.next () în loc de.nextLine () pentru a citi cuvântul următor, deoarece.nextLine () poate fi un buggy.

Recomandat: