Hvordan få input fra en bruker i Java (med bilder)

Innholdsfortegnelse:

Hvordan få input fra en bruker i Java (med bilder)
Hvordan få input fra en bruker i Java (med bilder)

Video: Hvordan få input fra en bruker i Java (med bilder)

Video: Hvordan få input fra en bruker i Java (med bilder)
Video: ПРИЗРАКИ ДЬЯВОЛЬСКОГО ОКУНЯ (Сезон 1) Интервью с Дэйвом Шрейдером 2024, Kan
Anonim

Når du programmerer i Java eller et annet språk, må du mest sannsynlig bruke inndatainformasjon fra en bruker. Java tilbyr mange forskjellige metoder for å få inn brukerinformasjon, men den vanligste og kanskje enkleste å implementere metoden er å bruke skannerobjektet.

Trinn

Metode 1 av 2: Videoer

1514756 1
1514756 1

Trinn 1. Importer skannerklassen

Du kan enten velge å importere

java.util. Scanner

klasse eller hele

java.util

pakke. For å importere en klasse eller en pakke, legg til en av følgende linjer helt i begynnelsen av koden:

    importer java.util. Scanner; // Dette vil bare importere skannerklassen. import java.util.*; // Dette vil importere hele java.util -pakken.

1514756 2
1514756 2

Trinn 2. Initialiser et nytt skannerobjekt ved å passere

System. I

inndatastrøm til konstruktøren.

System. I

er standard inndatastrøm som allerede er åpen og klar til å levere inndata. Vanligvis tilsvarer denne strømmen tastaturinngang.

    Skanner userInputScanner = ny skanner (System.in);

1514756 3
1514756 3

Trinn 3. Les inn forskjellige typer inndata som brukeren legger inn

Skannerklassen støtter å få primitiver som int, byte, kort, lang i tillegg til å få strenger.

  • Her er noen metoder som er tilgjengelige gjennom skannerklassen:

    • Les en byte -

      nextByte ()

    • Les en kort -

      nesteShort ()

    • Les en int -

      nextInt ()

    • Les lenge -

      nextLong ()

    • Les en flottør -

      nextFloat ()

    • Les en dobbel -

      nesteDobbelt ()

    • Les en boolsk -

      nesteBolsk ()

    • Les hele linjen -

      nextLine ()

    • Les et ord -

      neste ()

  • Her er et eksempel på et program som bruker forskjellige metoder i skannerklassen for å få forskjellige typer input:

      importer java.util. Scanner; public class ScannerExample {public static void main (String args) {// Start a new Scanner Scanner userInputScanner = new Scanner (System.in); // Testing nextLine (); System.out.println ("\ nHva er navnet ditt?"); Stringnavn = userInputScanner.nextLine (); // Testing nextInt (); System.out.print ("Hvor mange katter har du?"); int numberOfCats = userInputScanner.nextInt (); // Testing nextDouble (); System.out.print ("Hvor mye penger er det i lommeboken din? $"); dobbel moneyInWallet = userInputScanner.nextDouble (); System.out.println ("\ nHei" + navn + "! Du har" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "og $" + moneyInWallet + "i lommeboken. / N"); }}

Metode 2 av 2: Håndtering av unntak

1514756 4
1514756 4

Trinn 1. Håndter inngangsunntak

An

InputMismatchException

kastes når brukeren legger inn data som ikke samsvarer med den forespurte typen. For eksempel, hvis brukeren angir en streng når det blir bedt om en int, vil programmet kaste en

InputMismatchException

og gå ut. Det er flere måter å håndtere dette unntaket og løse dette problemet på, slik at programmet ditt kan være idiotsikkert.

1514756 5
1514756 5

Trinn 2. Bruk en prøve-fang-blokk for å håndtere

InputMismatchException

.

    import java.util. InputMismatchException; importer java.util. Scanner; public class ScannerExample {public static void main (String args) {// Start a new Scanner Scanner userInputScanner = new Scanner (System.in); // Testing nextLine (); System.out.print ("\ nHva er navnet ditt?"); Stringnavn = userInputScanner.nextLine (); // Testing nextInt (); boolsk validInput = false; int numberOfCats = 0; while (! validInput) {System.out.print ("Hvor mange katter har du?"); prøv {numberOfCats = userInputScanner.nextInt (); validInput = true; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }}} // Testing nextDouble (); validInput = false; dobbel moneyInWallet = 0,0; while (! validInput) {System.out.print ("Hvor mye penger er i lommeboken din? $"); prøv {moneyInWallet = userInputScanner.nextDouble (); userInputScanner.nextLine (); validInput = true; } catch (InputMismatchException e) {validInput = false; userInputScanner.nextLine (); }} System.out.println ("\ nHei" + navn + "! Du har" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "og $" + moneyInWallet + "i lommeboken. / n "); }}

  • Vær oppmerksom på at vi må importere

    java.util. InputMismatchException

    for å bruke

    InputMismatchException

  • klasse.
  • Vi bruker en while -sløyfe til å stille brukeren det samme spørsmålet til brukeren angir riktig inngang.
  • Legger til

    userInputScanner.nextLine ();

  • i fangstdelen av prøvefangsten sikrer at skanneren anerkjenner "enter" tastetrykket fra brukeren og fungerer som en måte å slette inndatabufferen.
1514756 6
1514756 6

Trinn 3. Alternativt kan du gjøre brukerinngangen idiotsikker ved bare å ta inn de neste linjene fra skanneren

På denne måten kan vi sikre at alt skanneren returnerer er et strengobjekt og ikke vil skape noen unntak. For å konvertere strengene til heltall eller dobler, kan vi bruke klassene Heltall og Doble omslag.

    importer java.util. Scanner; public class ScannerExample {public static void main (String args) {// Start a new Scanner Scanner userInputScanner = new Scanner (System.in); // Testing nextLine (); System.out.print ("\ nHva er navnet ditt?"); Stringnavn = userInputScanner.nextLine (); // Testing nextInt (); boolsk validInput = false; int numberOfCats = 0; while (! validInput) {System.out.print ("Hvor mange katter har du?"); String input = userInputScanner.nextLine (); prøv {numberOfCats = Integer.parseInt (input); validInput = true; } catch (NumberFormatException e) {validInput = false; }}} // Testing nextDouble (); validInput = false; dobbel moneyInWallet = 0,0; while (! validInput) {System.out.print ("Hvor mye penger er det i lommeboken din? $"); String input = userInputScanner.nextLine (); prøv {moneyInWallet = Double.parseDouble (input); validInput = true; } catch (NumberFormatException e) {validInput = false; }} System.out.println ("\ nHei" + navn + "! Du har" + numberOfCats + (numberOfCats> 1? "Cats": "cat") + "og $" + moneyInWallet + "i lommeboken. / n "); }}

  • Vær oppmerksom på at vi her ikke trengte å importere

    NumberFormatException

  • klasse fordi den er en del av java.lang -pakken, noe som betyr at den kommer innebygd.
  • Vi trengte heller ikke å tømme bufferen ved hjelp av

    userInputScanner.nextLine ();

  • i fangstdelen av prøvefangsten.

Tips

  • Se Skanner -API for mer informasjon om bruk av skanner -klassen.
  • Bruk alltid.next () i stedet for.nextLine () for å lese det neste ordet, da.nextLine () kan være buggy.

Anbefalt: