Syötteen saaminen käyttäjältä Javassa (kuvilla)

Sisällysluettelo:

Syötteen saaminen käyttäjältä Javassa (kuvilla)
Syötteen saaminen käyttäjältä Javassa (kuvilla)

Video: Syötteen saaminen käyttäjältä Javassa (kuvilla)

Video: Syötteen saaminen käyttäjältä Javassa (kuvilla)
Video: Sydney, Australia Walking Tour - 4K60fps with Captions - Prowalk Tours 2024, Saattaa
Anonim

Kun ohjelmoit Java- tai millä tahansa muulla kielellä, sinun on todennäköisesti käytettävä käyttäjän syöttämiä tietoja. Java tarjoaa monia erilaisia menetelmiä käyttäjätietojen saamiseksi, mutta yleisin ja ehkä helpoin toteuttaa menetelmä on käyttää Scanner -objektia.

Askeleet

Tapa 1 /2: Videot

1514756 1
1514756 1

Vaihe 1. Tuo Skanneriluokka

Voit joko tuoda

java.util. Skanneri

luokka tai koko

java.util

paketti. Jos haluat tuoda luokan tai paketin, lisää yksi seuraavista riveistä koodisi alkuun:

    tuoda java.util. Scanner; // Tämä tuo vain Scanner -luokan. tuo java.util.*; // Tämä tuo koko java.util -paketin.

1514756 2
1514756 2

Vaihe 2. Alusta uusi skanneriobjekti ohittamalla

System.in

tulovirta konstruktorille.

System.in

on vakiotulovirta, joka on jo avoinna ja valmis syöttämään syöttötietoja. Yleensä tämä virta vastaa näppäimistön tuloa.

    Skanneri userInputScanner = uusi skanneri (System.in);

1514756 3
1514756 3

Vaihe 3. Lue erilaisia käyttäjän syöttämiä syöttötietoja

Skanneriluokka tukee primitiivien, kuten int, tavu, lyhyt ja pitkä, saamista merkkijonojen saamisen lisäksi.

  • Tässä on joitain menetelmiä, jotka ovat käytettävissä Scanner -luokassa:

    • Lue tavu -

      nextByte ()

    • Lue lyhyt -

      seuraavaLyhyt ()

    • Lue int -

      nextInt ()

    • Lue pitkään -

      nextLong ()

    • Lue kellua -

      nextFloat ()

    • Lue tupla -

      seuraavaDouble ()

    • Lue boolean -

      nextBoolean ()

    • Lue koko rivi -

      nextLine ()

    • Lue sana -

      Seuraava()

  • Tässä on esimerkki ohjelmasta, joka käyttää erilaisia Scanner -luokan menetelmiä saadakseen erilaisia syötteitä:

      tuoda java.util. Scanner; public class ScannerExample {public static void main (String args) {// Aloita uusi skanneriskanneri userInputScanner = new Scanner (System.in); // testataan nextLine (); System.out.println ("\ nMikä on nimesi?"); Merkkijonon nimi = userInputScanner.nextLine (); // Testataan nextInt (); System.out.print ("Kuinka monta kissaa sinulla on?"); int numberOfCats = userInputScanner.nextInt (); // Testataan nextDouble (); System.out.print ("Kuinka paljon rahaa on lompakossasi? $"); double moneyInWallet = userInputScanner.nextDouble (); System.out.println ("\ nHei" + nimi + "! Lompakossasi on" + numberOfCats + (numberOfCats> 1? "Kissat": "kissa") + "ja $" + moneyInWallet + ". / N"); }}

Tapa 2/2: Poikkeusten käsittely

1514756 4
1514756 4

Vaihe 1. Käsittele syöttöpoikkeuksia

An

InputMismatchException

heitetään, kun käyttäjä syöttää tietoja, jotka eivät vastaa pyydettyä tyyppiä. Esimerkiksi, jos käyttäjä syöttää merkkijonon, kun int pyydetään, ohjelma heittää

InputMismatchException

ja poistua. On olemassa useita tapoja käsitellä tätä poikkeusta ja ratkaista tämä ongelma, jotta ohjelmasi voi olla idioottivarma.

1514756 5
1514756 5

Vaihe 2. Käytä try-catch-lohkoa

InputMismatchException

.

    tuo java.util. InputMismatchException; tuoda java.util. Scanner; public class ScannerExample {public static void main (String args) {// Aloita uusi skanneriskanneri userInputScanner = new Scanner (System.in); // testataan nextLine (); System.out.print ("\ nMikä on nimesi?"); Merkkijonon nimi = userInputScanner.nextLine (); // Testataan nextInt (); boolean validInput = false; int numberOfCats = 0; while (! validInput) {System.out.print ("Kuinka monta kissaa sinulla on?"); kokeile {numberOfCats = userInputScanner.nextInt (); validInput = true; } saalis (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} // Testataan nextDouble (); validInput = false; double moneyInWallet = 0,0; while (! validInput) {System.out.print ("Kuinka paljon rahaa lompakossasi on? $"); kokeile {moneyInWallet = userInputScanner.nextDouble (); userInputScanner.nextLine (); validInput = true; } saalis (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} System.out.println ("\ nHei" + nimi + "! Lompakossasi on" + numberOfCats + (numberOfCats> 1? "Cats": "kissa") + "ja $" + moneyInWallet + ". / n "); }}

  • Huomaa, että meidän on tuotava

    java.util. InputMismatchException

    voidakseen käyttää

    InputMismatchException

  • luokka.
  • Käytämme while -silmukkaa kysyäksesi käyttäjältä samaa kysymystä, kunnes käyttäjä on syöttänyt oikean tulon.
  • Lisätään

    userInputScanner.nextLine ();

  • yrittää-saalis-osassa varmistaa, että skanneri kuittaa käyttäjän "enter" -näppäimen painalluksen ja toimii syöttöpuskurin tyhjentämisenä.
1514756 6
1514756 6

Vaihe 3. Vaihtoehtoisesti voit tehdä käyttäjän syötteestä turhan varman ottamalla vain seuraavat rivit skannerista

Tällä tavalla voimme varmistaa, että kaikki skannerin palauttamat tiedot ovat merkkijono -objekteja eivätkä luo poikkeuksia. Sitten, jos haluat muuntaa merkkijonot kokonaisluvuiksi tai tuplaksi, voimme käyttää Integer- ja Double -kääreluokkia.

    tuoda java.util. Scanner; public class ScannerExample {public static void main (String args) {// Aloita uusi skanneriskanneri userInputScanner = new Scanner (System.in); // testataan nextLine (); System.out.print ("\ nMikä on nimesi?"); Merkkijonon nimi = userInputScanner.nextLine (); // Testataan nextInt (); boolean validInput = false; int numberOfCats = 0; while (! validInput) {System.out.print ("Kuinka monta kissaa sinulla on?"); Merkkijonotulo = userInputScanner.nextLine (); try {numberOfCats = Integer.parseInt (input); validInput = true; } saalis (NumberFormatException e) {validInput = false; }} // Testataan nextDouble (); validInput = false; double moneyInWallet = 0,0; while (! validInput) {System.out.print ("Kuinka paljon rahaa lompakossasi on? $"); Merkkijonotulo = userInputScanner.nextLine (); kokeile {moneyInWallet = Double.parseDouble (input); validInput = true; } saalis (NumberFormatException e) {validInput = false; }} System.out.println ("\ nHei" + nimi + "! Lompakossasi on" + numberOfCats + (numberOfCats> 1? "Cats": "kissa") + "ja $" + moneyInWallet + ". / n "); }}

  • Huomaa, että täällä meidän ei tarvinnut tuoda

    NumberFormatException

  • luokkaan, koska se on osa java.lang -pakettia, mikä tarkoittaa, että se on sisäänrakennettu.
  • Meidän ei myöskään tarvinnut tyhjentää puskuria käyttämällä

    userInputScanner.nextLine ();

  • yrityssaaliin saalisosassa.

Vinkkejä

  • Lisätietoja Scanner -luokan käytöstä on Scanner API: ssa.
  • Käytä aina.next (): n.nextLine () sijaan seuraavan sanan lukemiseen, koska.nextLine () voi olla viallinen.

Suositeltava: