Huis Persoonlijke financiën Hoe u invoer krijgt met Java Scanner Class - dummies

Hoe u invoer krijgt met Java Scanner Class - dummies

Inhoudsopgave:

Video: Software Testing Tutorials for Beginners 2024

Video: Software Testing Tutorials for Beginners 2024
Anonim

Tot Java 1. 5 was het niet eenvoudig om tekstinvoer te krijgen van de gebruiker in een console-gebaseerd Java-programma. Maar met Java 1. 5 werd een nieuwe klasse - genaamd Scanner - geïntroduceerd om de invoer van de gebruiker te vereenvoudigen. Hier gebruikt u de klasse Scanner om eenvoudige invoerwaarden van de gebruiker te krijgen. De technieken die ik hier presenteer, worden in veel van de programma's gebruikt die in de rest van dit boek worden getoond.

Als u een oudere versie van Java gebruikt, moet u dit nog steeds lezen, omdat veel programma's de Scanner -klasse gebruiken.

Het eenvoudige programma hieronder gebruikt de klasse Scanner om een ​​geheel getal van de gebruiker te lezen en geeft vervolgens de waarde terug naar de console om te controleren of het programma de door de gebruiker ingevoerde waarde heeft ontvangen. Hier is een voorbeeld van het consolevenster voor dit programma:

Voer een geheel getal in: 5

U hebt 5 ingevoerd.

Het programma begint met het weergeven van het bericht Voer een geheel getal: in op de eerste regel. Daarna wacht het tot u een cijfer invoert. Wanneer u een nummer typt (zoals 5) en op de toets Enter drukt, wordt op de tweede regel het bevestigingsbericht weergegeven ( U hebt 5 ingevoerd.).

java importeren. util. Scanner; @@ RA1

public class ScannerApp

{

statische Scanner sc = nieuwe scanner (systeem. In); @@ ra6

public static void main (String [] args)

{

Systeem. uit. print ("Voer een geheel getal in:"); @@ ra10

int x = sc. nextInt (); @@ RA11

Systeem. uit. println ("U hebt" + x + "ingevoerd."); @@ ra12

}

}

De Scanklasse importeren in Java

Voordat u de klasse Scanner in een programma kunt gebruiken, moet u deze importeren. Om dat te doen, codeert u een import -instructie aan het begin van het programma, vóór de klassendeclaratie:

java importeren. util. Scanner;

Let op: java en gebruik hebben geen hoofdletter, maar Scanner is dat wel.

Als u andere klassen gebruikt in de Java. util -pakket, kunt u het hele pakket importeren door de import -instructie als volgt te coderen:

java importeren. util. *;

Een Scanner-object declareren en maken in Java

Voordat u de klasse Scanner kunt gebruiken om invoer van de console te lezen, moet u een Scanner -variabele declareren en een exemplaar maken van de Scanner -klasse. U kunt de Scanner -variabele als een klassenvariabele maken en het Scanner -object maken in de klassenvariabele-initialisatieprogramma, zoals weergegeven in regel 6 van het bovenstaande programma:

statische Scanner sc = nieuwe scanner (systeem. in);

Op die manier kunt u de variabele sc gebruiken voor elke methode in de klas.

Als u een Scanner -object wilt maken, gebruikt u het sleutelwoord nieuw gevolgd door een aanroep van de constructor Scanner . Merk op dat de klasse Scanner een parameter vereist die de invoerstroom aangeeft waarvan de invoer afkomstig is. U kunt Systeem gebruiken. in hier om standaard toetsenbordconsole-invoer te specificeren.

Input verkrijgen

Om een ​​invoerwaarde van de gebruiker te lezen, kunt u een van de methoden van de Scanner -klasse gebruiken die hieronder worden vermeld. Zoals u kunt zien, heeft het primitieve gegevenstype een afzonderlijke methode.

Scannerklassemethoden die invoerwaarden krijgen
Methode Verklaring
boolean nextBoolean () Leest een boolean -waarde van de gebruiker.
byte nextByte () Leest een byte waarde van de gebruiker.
double nextDouble () Leest een dubbele waarde van de gebruiker.
float nextFloat () Leest een float -waarde van de gebruiker.
int nextInt () Leest een int -waarde van de gebruiker.
String nextLine () Leest een String -waarde van de gebruiker.
long nextLong () Leest een lange waarde van de gebruiker.
short nextShort () Leest een korte waarde van de gebruiker.

Let op in de eerste kolom van de tabel dat elke lijst met methoden begint met het type waarde dat door de methode wordt geretourneerd. De nextInt -methode retourneert bijvoorbeeld een int -waarde. Merk ook op dat elk van de methoden eindigt met een lege reeks haakjes. Dat betekent dat deze methoden geen parameters vereisen. Als een methode parameters vereist, worden de parameters tussen deze haakjes weergegeven.

Omdat deze methoden een waarde van de gebruiker lezen en de waarde retourneren, gebruikt u ze meestal in instructies waarin de waarde aan een variabele wordt toegewezen. Regel 11 leest bijvoorbeeld een int en wijst deze toe aan een variabele met de naam x .

Wanneer de methode nextInt wordt uitgevoerd, wacht het programma totdat de gebruiker een waarde in het consolevenster heeft ingevoerd. Om de gebruiker te laten weten wat voor soort invoer het programma verwacht, moet u meestal het -systeem bellen. uit. print -methode voordat u een Scanner -methode belt om invoer te krijgen. Lijn 10-oproepen Systeem. uit. print om het bericht weer te geven Voer een geheel getal: in op de console. Op die manier weet de gebruiker dat het programma op invoer wacht.

Als de gebruiker een waarde invoert die niet naar het juiste type kan worden geconverteerd, loopt het programma vast, wat betekent dat het abrupt wordt beëindigd. Wanneer het programma crasht, wordt een cryptisch foutbericht weergegeven dat aangeeft waardoor de fout is veroorzaakt. Als u bijvoorbeeld drie in plaats van een werkelijk getal invoert, ziet het consolevenster er ongeveer zo uit:

Voer een geheel getal in: drie Uitzondering in java "main" java. util. InputMismatchException

in java. util. Scanner. throwFor (Scanner. java: 819)

in java. util. Scanner. volgende (Scanner. java: 1431)

in java. util. Scanner. nextInt (Scanner. java: 2040)

in java. util. Scanner. nextInt (Scanner. java: 2000)

bij ScannerApp.main (ScannerApp. java: 11)

Dit bericht geeft aan dat een exception genaamd InputMismatchException heeft plaatsgevonden, wat betekent dat het programma een integer verwachtte maar in plaats daarvan iets anders kreeg. Als u niet weet hoe u uitzonderingen als deze moet opgeven, zodat het programma een vriendelijker bericht kan weergeven en de gebruiker nog een kans kan geven om een ​​juiste waarde in te voeren, moet u het feit accepteren dat als de gebruiker onjuiste gegevens invoert, je programma crasht ongracieus.

U kunt voorkomen dat de nextInt en soortgelijke methoden crashen met onjuiste invoergegevens door eerst een van de hier vermelde methoden te gebruiken om de volgende invoer te testen om te controleren of deze geldig is.

Scannerklassemethoden die zoeken naar geldige invoerwaarden
Methode Toelichting
boolean hasNextBoolean () Geeft als resultaat waar als de volgende waarde die door de gebruiker is ingevoerd een geldige < boolean waarde. boolean hasNextByte ()
Retourneert true als de volgende door de gebruiker ingevoerde waarde een geldige byte is. boolean hasNextDouble ()
Retourneert true als de volgende door de gebruiker ingevoerde waarde een geldige dubbele -waarde is. boolean hasNextFloat ()
Retourneert true als de volgende waarde die door de gebruiker is ingevoerd een geldige zwevend -waarde is. boolean hasNextInt ()
Retourneert true als de volgende door de gebruiker ingevoerde waarde een geldige int waarde is. boolean hasNextLong ()
Retourneert true als de volgende waarde die door de gebruiker is ingevoerd een geldige lange waarde is. boolean hasNextShort ()
Retourneert true als de volgende door de gebruiker ingevoerde waarde een geldige korte waarde is.
Hoe u invoer krijgt met Java Scanner Class - dummies

Bewerkers keuze

Hoe u Flash-video maakt en codeert - dummies

Hoe u Flash-video maakt en codeert - dummies

Als de pagina's die u maakt, zijn gewonnen ' t kan worden bekeken op mobiele apparaten (zoals een iPad of een smartphone), kunt u webpagina's maken met prachtige Flash-video. Adobe Flash Professional CS6 heeft een eigen ingebouwde video-encoder. Full-motionvideo in Flash is iets heel moois. U past de video aan voor het bekijken door de doelgroep ...

Hoe een aanpasbare interface te maken in CSS3 - dummies

Hoe een aanpasbare interface te maken in CSS3 - dummies

De grote variëteit en soorten schermen gebruikt om informatie weer te geven, maakt het nodig dat uw CSS3-commando's de gebruiker toestaan ​​om het formaat van de elementen naar wens aan te passen. In de meeste gevallen kunt u de gebruiker eenvoudig toestaan ​​om het element op elke gewenste grootte te maken. Er kunnen zich echter situaties voordoen waarin u de grootte van de grootte moet controleren ...

Hoe u een eenvoudige tabel op uw webpagina maakt - dummies

Hoe u een eenvoudige tabel op uw webpagina maakt - dummies

Tabellen laten u organiseer informatie op uw webpagina en geef het een georganiseerde uitstraling die uw bezoekers nuttig zullen vinden. Bij gebruik zoals bedoeld, hebben tabellen rijen en kolommen. Voor elke spot waar een rij en kolom elkaar kruisen, hebt u een tabelcel. Elke cel kan zijn eigen opmaak hebben: de gegevens erin ...

Bewerkers keuze

Hoe Postproduction Shareninging Filters werken - dummies

Hoe Postproduction Shareninging Filters werken - dummies

Verscherpingsfilters werken in postproductie door de randen (of aangrenzende gebieden met tonaal contrast) te benadrukken aan elkaar) in een afbeelding. Ze creëren een fijne highlight aan de donkere kant van de rand en een piepklein lowlight aan de lichtere kant van de rand. Dit toegevoegde contrast zorgt ervoor dat de randen er scherper uitzien vanaf een ...

HDR Work-Flow voor foto's met één belichting - dummies

HDR Work-Flow voor foto's met één belichting - dummies

In grote lijnen, enkele belichting hoog dynamisch bereik volgt dezelfde workflow als HDR-fotografie tussen haakjes. Er kunnen kleine verschillen zijn, dus hier is een overzicht van de werkstroom: configureer uw camera voor single-shot HDR. Het enige dat u zoekt, is de beste foto die u kunt maken. Besteed aandacht aan de lichtomstandigheden, het onderwerp, beweging en ...

Geavanceerde compacte en superzoomcamera's voor HDR-fotografie - dummies

Geavanceerde compacte en superzoomcamera's voor HDR-fotografie - dummies

Stap omhoog van compacte digitale camera's binnen het budgetbereik, vindt u duurdere compacte digitale camera's voor HDR-fotografie, ook wel high-end compacts, superzoomlenzen en dSLR-look-alikes genoemd. Er zijn zoveel vaak overlappende categorieën dat het je hoofd laat draaien. De twee dingen die deze reeks camera's gemeen hebben, zijn hun ...

Bewerkers keuze

In te schakelen Class Tracking in QuickBooks 2013 - dummies

In te schakelen Class Tracking in QuickBooks 2013 - dummies

Om activity-based costing te gebruiken (ABC ) in QuickBooks 2013 moet u de QuickBooks Class Tracking-functie inschakelen. Met Class Tracking kunt u inkomsten- en onkostentransacties categoriseren als niet alleen vallen in inkomsten- en uitgavenrekeningen, maar ook als vallen in bepaalde klassen. Volg deze stappen om Class Tracking in QuickBooks in te schakelen: Kies Bewerken → Voorkeuren ...

Gebruikt om een ​​exemplaar van een QuickBooks-gegevensbestand te gebruiken - dummies

Gebruikt om een ​​exemplaar van een QuickBooks-gegevensbestand te gebruiken - dummies

Ongeacht of de client verzendt handmatig een accountantskopie van een QuickBooks-gegevensbestand, e-mails een accountantsexemplaar, of verzendt een accountantskopie via de Intuit-bestandsoverdrachtservice, u gebruikt de kopie van de accountant door Bestand → Verzend bedrijfsdossier → Accountantskopie → Open & converteer overzetten te kiezen Bestand commando. Wanneer u deze opdracht kiest, geeft QuickBooks een ...

Hoe Audit Trails te gebruiken in QuickBooks - dummies

Hoe Audit Trails te gebruiken in QuickBooks - dummies

Als u besluit om meerdere gebruikers toegang te geven tot de QuickBooks-gegevens bestand, zult u de QuickBooks Audit Trail-functie waarderen, die bijhoudt wie welke wijzigingen aan het QuickBooks-gegevensbestand aanbrengt. U kunt transacties niet verwijderen uit de lijst of geschiedenis van de audittrail, behalve door gegevens te archiveren en te condenseren. Audit trail inschakelen ...