Kuidas saada Java sisendit kasutajalt (piltidega)

Sisukord:

Kuidas saada Java sisendit kasutajalt (piltidega)
Kuidas saada Java sisendit kasutajalt (piltidega)

Video: Kuidas saada Java sisendit kasutajalt (piltidega)

Video: Kuidas saada Java sisendit kasutajalt (piltidega)
Video: PRIONI - - Spiegazione 2024, Mai
Anonim

Java või mõne muu keele programmeerimisel peate suure tõenäosusega kasutama kasutaja sisendteavet. Java pakub kasutajateabe sisestamiseks palju erinevaid meetodeid, kuid kõige tavalisem ja võib -olla kõige hõlpsamini rakendatav meetod on objekti Scanner kasutamine.

Sammud

Meetod 1: 2: videod

1514756 1
1514756 1

Samm 1. Importige skanneri klass

Saate importida

java.util. Skanner

klass või kogu

java.util

pakett. Klassi või paketi importimiseks lisage koodi algusesse üks järgmistest ridadest:

    importige java.util. Scanner; // See impordib ainult klassi Scanner. import java.util.*; // See impordib kogu paketi java.util.

1514756 2
1514756 2

Samm 2. Vormista uus skanneriobjekt, läbides

System.in

sisendvoog konstruktorisse.

System.in

on standardne sisendvoog, mis on juba avatud ja valmis sisendandmete edastamiseks. Tavaliselt vastab see voog klaviatuuri sisendile.

    Skanner userInputScanner = uus skanner (System.in);

1514756 3
1514756 3

Samm 3. Lugege sisse erinevaid sisestatud andmeid, mida kasutaja sisestab

Skanneri klass toetab lisaks stringide hankimisele ka primitiivide (nt int, bait, lühike ja pikk) saamist.

  • Siin on mõned meetodid, mis on saadaval skanneriklassi kaudu:

    • Loe baiti -

      nextByte ()

    • Loe lühidalt -

      nextShort ()

    • Lugege int -

      nextInt ()

    • Loe pikalt -

      nextLong ()

    • Lugege ujukit -

      nextFloat ()

    • Lugege topelt -

      nextDouble ()

    • Loe tõeväärtust -

      nextBoolean ()

    • Lugege tervet rida -

      nextLine ()

    • Loe sõna -

      järgmine ()

  • Siin on näide programmist, mis kasutab erinevat tüüpi sisendi saamiseks skanneri klassi erinevaid meetodeid.

      importige java.util. Scanner; public class ScannerExample {public static void main (String args) {// Uue skanneriskanneri algatamine userInputScanner = new Scanner (System.in); // nextLine testimine (); System.out.println ("\ nMis su nimi on?"); Stringi nimi = userInputScanner.nextLine (); // testimine nextInt (); System.out.print ("Mitu kassi teil on?"); int numberOfCats = userInputScanner.nextInt (); // Testimine nextDouble (); System.out.print ("Kui palju raha on teie rahakotis? $"); topeltrahaInWallet = userInputScanner.nextDouble (); System.out.println ("\ nTere" + nimi + "! Teie rahakotis on" + numberOfCats + (numberOfCats> 1? "Kassid": "kass") + "ja $" + moneyInWallet + ". / N"); }}

Meetod 2/2: Erandite käsitlemine

1514756 4
1514756 4

Samm 1. Käsitlege sisendi erandeid

An

InputMismatchException

visatakse, kui kasutaja sisestab andmed, mis ei vasta soovitud tüübile. Näiteks kui kasutaja sisestab string, kui int küsitakse, viskab programm

InputMismatchException

ja väljuge. Selle erandi lahendamiseks ja selle probleemi lahendamiseks on mitu võimalust, et teie programm oleks lollikindel.

1514756 5
1514756 5

Samm 2. Kasutage proovitõmbamisplokki

InputMismatchException

.

    importige java.util. InputMismatchException; importige java.util. Scanner; public class ScannerExample {public static void main (String args) {// Uue skanneriskanneri algatamine userInputScanner = new Scanner (System.in); // nextLine testimine (); System.out.print ("\ nMis su nimi on?"); Stringi nimi = userInputScanner.nextLine (); // testimine nextInt (); boolean validInput = false; int numberOfCats = 0; while (! validInput) {System.out.print ("Mitu kassi sul on?"); proovige {numberOfCats = userInputScanner.nextInt (); validInput = true; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} // Testimine nextDouble (); validInput = vale; topeltrahaInWallet = 0,0; while (! validInput) {System.out.print ("Kui palju raha on teie rahakotis? $"); proovige {moneyInWallet = userInputScanner.nextDouble (); userInputScanner.nextLine (); validInput = true; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} System.out.println ("\ nTere" + nimi + "! Teie rahakotis on" + numberOfCats + (numberOfCats> 1? "Kassid": "kass") + "ja $" + moneyInWallet + ". / n "); }}

  • Pange tähele, et peame importima

    java.util. InputMismatchException

    selleks, et kasutada

    InputMismatchException

  • klassi.
  • Kasutame while -tsüklit, et esitada kasutajale sama küsimus, kuni kasutaja sisestab õige sisendi.
  • Lisamine

    userInputScanner.nextLine ();

  • proovipüüdmise püügiosas tagab, et skanner tunnistab kasutaja sisestusklahvi ja vajutab sisestuspuhvrit.
1514756 6
1514756 6

Samm 3. Teise võimalusena tehke kasutaja sisend lollikindlaks, võttes ainult skanneri järgmised read

Nii saame tagada, et kõik, mida skanner tagastab, on String -objekt ja ei tekita erandeid. Seejärel saame stringide täisarvudeks või kahekordistusteks teisendamiseks kasutada täisarvude ja kahekordse ümbrise klasse.

    importige java.util. Scanner; public class ScannerExample {public static void main (String args) {// Uue skanneriskanneri algatamine userInputScanner = new Scanner (System.in); // nextLine testimine (); System.out.print ("\ nMis su nimi on?"); Stringi nimi = userInputScanner.nextLine (); // testimine nextInt (); boolean validInput = false; int numberOfCats = 0; while (! validInput) {System.out.print ("Mitu kassi sul on?"); Stringi sisend = userInputScanner.nextLine (); proovige {numberOfCats = Integer.parseInt (sisend); validInput = true; } püüdmine (NumberFormatException e) {validInput = false; }} // Testimine nextDouble (); validInput = vale; topeltrahaInWallet = 0,0; while (! validInput) {System.out.print ("Kui palju raha on teie rahakotis? $"); Stringi sisend = userInputScanner.nextLine (); proovige {moneyInWallet = Double.parseDouble (sisend); validInput = true; } catch (NumberFormatException e) {validInput = false; }} System.out.println ("\ nTere" + nimi + "! Teie rahakotis on" + numberOfCats + (numberOfCats> 1? "Kassid": "kass") + "ja $" + moneyInWallet + ". / n "); }}

  • Pange tähele, et siin ei pidanud me importima

    NumberFormatException

  • klassi, sest see on osa paketist java.lang, mis tähendab, et see on sisseehitatud.
  • Samuti ei pidanud me puhvrit puhastama, kasutades

    userInputScanner.nextLine ();

  • proovisaagi püügiosas.

Näpunäiteid

  • Skanneri klassi kasutamise kohta lisateabe saamiseks vaadake skanneri API -d.
  • Kasutage järgmise sõna lugemiseks alati.next () asemel.nextLine (), kuna.nextLine () võib olla lollakas.

Soovitan: