Kaip gauti įvestį iš „Java“vartotojo (su paveikslėliais)

Turinys:

Kaip gauti įvestį iš „Java“vartotojo (su paveikslėliais)
Kaip gauti įvestį iš „Java“vartotojo (su paveikslėliais)

Video: Kaip gauti įvestį iš „Java“vartotojo (su paveikslėliais)

Video: Kaip gauti įvestį iš „Java“vartotojo (su paveikslėliais)
Video: Plague Inc: The Cure - Prion Mega-Brutal Guide 2024, Gegužė
Anonim

Kai programuojate „Java“ar bet kuria kita kalba, greičiausiai turėsite naudoti vartotojo įvesties informaciją. „Java“siūlo daugybę skirtingų būdų, kaip įvesti vartotojo informaciją, tačiau labiausiai paplitęs ir galbūt lengviausiai įgyvendinamas metodas yra naudoti „Scanner“objektą.

Žingsniai

1 metodas iš 2: vaizdo įrašai

1514756 1
1514756 1

Žingsnis 1. Importuokite skaitytuvo klasę

Galite pasirinkti importuoti

java.util. Scanner

klasę ar visą

java.util

paketas. Norėdami importuoti klasę ar paketą, prie pat kodo pradžios pridėkite vieną iš šių eilučių:

    importuoti java.util. Scanner; // Tai importuos tik „Scanner“klasę. importuoti java.util.*; // Tai importuos visą java.util paketą.

1514756 2
1514756 2

Žingsnis 2. Inicijuokite naują skaitytuvo objektą praleisdami

System.in

įvesties srautą į konstruktorių.

System.in

yra standartinis įvesties srautas, kuris jau yra atidarytas ir paruoštas teikti įvesties duomenis. Paprastai šis srautas atitinka klaviatūros įvestį.

    Skaitytuvas userInputScanner = naujas skaitytuvas (System.in);

1514756 3
1514756 3

Žingsnis 3. Perskaitykite įvairių tipų įvesties duomenis, kuriuos įveda vartotojas

„Scanner“klasė palaiko primityvų, tokių kaip int, baitas, trumpas ir ilgas, gavimą, be to, kad gauna eilutes.

  • Štai keletas metodų, kuriuos galima naudoti naudojant „Scanner“klasę:

    • Skaityti baitą -

      nextByte ()

    • Skaitykite trumpai -

      nextShort ()

    • Skaitykite int -

      nextInt ()

    • Skaityk ilgai -

      nextLong ()

    • Skaitykite plūdę -

      nextFloat ()

    • Skaityk dvigubai -

      nextDouble ()

    • Skaitykite loginį žodį -

      nextBoolean ()

    • Perskaitykite visą eilutę -

      nextLine ()

    • Perskaityk žodį -

      Kitas()

  • Čia yra programos, kuri naudoja skirtingus „Scanner“klasės metodus, kad gautų įvairių tipų įvestis, pavyzdys:

      importuoti java.util. Scanner; public class ScannerExample {public static void main (String args) {// Inicijuokite naują skaitytuvo skaitytuvą userInputScanner = new Scanner (System.in); // Testing nextLine (); System.out.println ("\ nKas tavo vardas?"); Eilutės pavadinimas = userInputScanner.nextLine (); // Testing nextInt (); System.out.print ("Kiek turite kačių?"); int numberOfCats = userInputScanner.nextInt (); // Testing nextDouble (); System.out.print ("Kiek pinigų yra jūsų piniginėje? $"); dvigubi pinigaiInWallet = userInputScanner.nextDouble (); System.out.println ("\ nSveiki" + vardas + "! Jūsų piniginėje yra" + numberOfCats + (numberOfCats> 1? "Katės": "katė") + "ir $" + moneyInWallet + ". / N"); }}

2 metodas iš 2: išimčių tvarkymas

1514756 4
1514756 4

Žingsnis 1. Tvarkykite įvesties išimtis

An

„InputMismatchException“

išmeta, kai vartotojas įveda duomenis, kurie neatitinka prašomo tipo. Pavyzdžiui, jei vartotojas įveda eilutę, kai prašoma int, programa išmeta

„InputMismatchException“

ir išeiti. Yra keletas būdų, kaip išspręsti šią išimtį ir išspręsti šią problemą, kad jūsų programa būtų nepriekaištinga.

1514756 5
1514756 5

Žingsnis 2. Naudokite try-catch bloką, kad galėtumėte tvarkyti

„InputMismatchException“

.

    importuoti java.util. InputMismatchException; importuoti java.util. Scanner; public class ScannerExample {public static void main (String args) {// Inicijuokite naują skaitytuvo skaitytuvą userInputScanner = new Scanner (System.in); // Testing nextLine (); System.out.print ("\ nKas tavo vardas?"); Eilutės pavadinimas = userInputScanner.nextLine (); // Testing nextInt (); loginis loginis validInput = false; int numberOfCats = 0; while (! validInput) {System.out.print ("Kiek turite kačių?"); pabandykite {numberOfCats = userInputScanner.nextInt (); validInput = tiesa; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} // Testing nextDouble (); validInput = false; dvigubi pinigaiInWallet = 0,0; while (! validInput) {System.out.print ("Kiek pinigų yra jūsų piniginėje? $"); pabandykite {moneyInWallet = userInputScanner.nextDouble (); userInputScanner.nextLine (); validInput = tiesa; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} System.out.println ("\ nSveiki" + vardas + "! Jūsų piniginėje yra" + numberOfCats + (numberOfCats> 1? "Katės": "katė") + "ir $" + moneyInWallet + ". / n "); }}

  • Atminkite, kad turime importuoti

    java.util. InputMismatchException

    norint naudotis

    „InputMismatchException“

  • klasė.
  • Mes naudojame laiko ciklą, kad užduotume vartotojui tą patį klausimą, kol vartotojas įves teisingą įvestį.
  • Pridedant

    userInputScanner.nextLine ();

  • bandomojo gaudyklės gaudymo dalyje užtikrina, kad skaitytuvas pripažintų vartotojo įvestą klavišą „Enter“ir veiktų kaip būdas išvalyti įvesties buferį.
1514756 6
1514756 6

3 veiksmas. Arba padarykite vartotojo įvestį nepriekaištingą, tik paimdami kitas skaitytuvo eilutes

Tokiu būdu galime užtikrinti, kad viskas, ką grąžina skaitytuvas, yra eilutės objektas ir nesukurs jokių išimčių. Tada, norėdami konvertuoti eilutes į sveikus skaičius ar dvigubas, galime naudoti „Integer“ir „Double“apvyniojimo klases.

    importuoti java.util. Scanner; public class ScannerExample {public static void main (String args) {// Inicijuokite naują skaitytuvo skaitytuvą userInputScanner = new Scanner (System.in); // tikrinama nextLine (); System.out.print ("\ nKas tavo vardas?"); Eilutės pavadinimas = userInputScanner.nextLine (); // Testing nextInt (); loginis loginis validInput = false; int numberOfCats = 0; while (! validInput) {System.out.print ("Kiek turite kačių?"); Eilutės įvestis = userInputScanner.nextLine (); pabandykite {numberOfCats = Integer.parseInt (įvestis); validInput = tiesa; } catch (NumberFormatException e) {validInput = false; }} // Testing nextDouble (); validInput = false; dvigubi pinigaiInWallet = 0,0; while (! validInput) {System.out.print ("Kiek pinigų yra jūsų piniginėje? $"); Eilutės įvestis = userInputScanner.nextLine (); pabandykite {moneyInWallet = Double.parseDouble (įvestis); validInput = tiesa; } catch (NumberFormatException e) {validInput = false; }} System.out.println ("\ nSveiki" + vardas + "! Jūsų piniginėje yra" + numberOfCats + (numberOfCats> 1? "Katės": "katė") + "ir $" + moneyInWallet + ". / n "); }}

  • Atminkite, kad čia mums nereikėjo importuoti

    NumberFormatException

  • klasę, nes ji yra paketo java.lang dalis, o tai reiškia, kad ji yra integruota.
  • Mes taip pat neturėjome išvalyti buferio naudodami

    userInputScanner.nextLine ();

  • bandomojo sugavimo laimikio dalyje.

Patarimai

  • Daugiau informacijos apie „Scanner“klasės naudojimą ieškokite „Scanner“API.
  • Visada naudokite.next () vietoj.nextLine (), kad perskaitytumėte kitą žodį, nes.nextLine () gali būti klaidingas.

Rekomenduojamas: