Hem Personliga finanser Hur man får inmatning med javas scannerklass - dummies

Hur man får inmatning med javas scannerklass - dummies

Innehållsförteckning:

Video: How to find sum of diagonal elements in java 2024

Video: How to find sum of diagonal elements in java 2024
Anonim

Till Java 1. 5 var det inte lätt att få textinmatning från användaren i ett konsolbaserat Java-program. Men med Java 1. 5 introducerades en ny klass - kallad Scanner - för att förenkla uppgiften att få insats från användaren. Här använder du klassen Scanner för att få enkla inmatningsvärden från användaren. De tekniker jag presenterar här används i många av de program som visas i resten av denna bok.

Om du använder en äldre version av Java, borde du fortfarande läsa detta, eftersom många program använder klassen Skanner .

Det enkla programmet nedan använder klassen Scanner för att läsa ett heltal värde från användaren och visar sedan värdet tillbaka till konsolen för att verifiera att programmet mottog det värde som användaren angav. Här är ett exempel på konsolfönstret för det här programmet:

Skriv ett heltal: 5

Du skrev in 5.

Programmet börjar med att visa meddelandet Ange ett heltal: på första raden. Sedan väntar det på att du anger ett nummer. När du skriver ett nummer (t.ex. 5) och trycker på Enter-tangenten visas bekräftelsemeddelandet ( Du skrev 5 .) På andra raden.

importera java. util. Scanner; @@ RA1

Public Class ScannerApp

{

statisk Scanner sc = ny skanner (System. In); @@ ra6

statisk statisk tomt huvud (String [] args)

{

System. ut. skriv ut ("Ange ett heltal:"); @@ ra10

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

System. ut. println ("Du skrev in" + x + "."); @@ ra12

}

}

Importera skannerklassen i Java

Innan du kan använda klassen Scanner i ett program måste du importera det. För att göra det kodar du ett import uttalande i början av programmet innan klassdeklarationen:

importera java. util. Scanner;

Observera att java och util inte är aktiverade, men Skanner är.

Om du använder andra klasser i java. util -paketet, kan du importera hela paketet genom att koda import -sättningen enligt följande:

importera java. util. *;

Deklarera och skapa ett Scanner-objekt i Java

Innan du kan använda klassen Scanner för att läsa inmatning från konsolen måste du ange en Scanner -variabel och skapa en instans i klassen Scanner . Det kan hända att du skapar variabeln Scanner som en klassvariabel och skapar objektet Scanner i initialiseraren för klassvariabler, som visas i rad 6 i programmet ovan:

statisk scanner sc = ny scanner (system. in);

På så sätt kan du använda variabeln sc i valfri metod i klassen.

För att skapa ett Scanner -objekt, använder du nytt sökordet följt av ett samtal till klasskonstruktorn Scanner . Observera att klassen Scanner kräver en parameter som anger ingångsströmmen som ingången kommer från. Du kan använda System. i här för att ange standard tangentbordskonsolinmatning.

Få inmatning

För att läsa ett inmatningsvärde från användaren kan du använda en av metoderna i klassen Scanner som anges nedan. Som du kan se har den primitive datatypen en separat metod.

Skannarklassmetoder som får inmatningsvärden
Metod Förklaring
Boolean nextBoolean () Läser ett värde boolean från användaren.
byte nextByte () Läser ett värde byte från användaren.
double nextDouble () Läser ett dubbelvärde från användaren.
float nextFloat () Läser ett värde float från användaren.
int nextInt () Läser ett värde int från användaren.
String nextLine () Läser ett värde String från användaren.
long nextLong () Läser ett värde långt från användaren.
kort nextShort () Läser ett kort värde från användaren.

Lägg märke till i den första kolumnen i tabellen att varje metodlista börjar med typen av det värde som returneras med metoden. Metoden nextInt returnerar till exempel ett värde int . Observera också att alla metoder slutar med en tom uppsättning parenteser. Det innebär att dessa metoder inte kräver parametrar. Om en metod kräver parametrar, anges parametrarna inom dessa parenteser.

Eftersom dessa metoder läser ett värde från användaren och returnerar värdet, använder du dem oftast i uttalanden som tilldelar värdet till en variabel. Linje 11, till exempel, läser en int och tilldelar den till en variabel som heter x .

När metoden nextInt körs, väntar programmet för användaren att ange ett värde i konsolfönstret. För att låta användaren veta vilken typ av ingång programmet förväntar sig brukar du ringa Systemet. ut. skriv ut innan du ringer en Scanner -metod för att få inmatning. Linje 10 ringer System. ut. skriv ut för att visa meddelandet Ange ett heltal: på konsolen. På så sätt vet användaren att programmet väntar på inmatning.

Om användaren anger ett värde som inte kan konverteras till rätt typ, kraschar programmet, vilket innebär att det slutar plötsligt. När programmet kraschar visas det ett kryptiskt felmeddelande som anger vad som orsakade felet. Om du anger tre istället för ett verkligt tal ser konsolfönstret något ut så här:

Ange ett heltal: tre Undantag i tråd "main" java. util. InputMismatchException

på java. util. Scanner. throwFor (Scanner. java: 819)

på java. util. Scanner. nästa (Scanner. Java: 1431)

på java. util. Scanner. nextInt (Scanner. java: 2040)

på java. util. Scanner. nextInt (Scanner. java: 2000)

på ScannerApp.main (ScannerApp. java: 11)

Det här meddelandet indikerar att ett undantag kallat InputMismatchException har inträffat, vilket innebär att programmet förväntade sig att se ett heltal men fick något annat istället. Om du inte vet hur du ska ge undantag som dessa så att programmet kan visa ett vänligare meddelande och ge användaren ett annat skott när du anger ett korrekt värde, måste du bekräfta att om användaren anger felaktiga data, ditt program kraschar skamligt.

Du kan förhindra att nextInt och liknande metoder kraschar med felaktiga inmatningsdata genom att först använda en av metoderna som listas här för att testa nästa ingång för att se till att den är giltig.

Skannarklassmetoder som kontrollerar giltiga ingångsvärden
Metod Förklaring
Boolean hasNextBoolean () Returnerar true om nästa värde som anges av användaren är en giltig < boolean värde. boolean harNextByte ()
Returnerar true om nästa värde som anges av användaren är ett giltigt värde byte . Boolean harNextDouble ()
Returnerar true om nästa värde som anges av användaren är ett giltigt värde double . Boolean harNextFloat ()
Returnerar true om nästa värde som anges av användaren är ett giltigt värde float . Boolean harNextInt ()
Returnerar true om nästa värde som anges av användaren är ett giltigt värde int . Boolean harNextLong ()
Returnerar true om nästa värde som anges av användaren är ett giltigt värde långt . Boolean harNextShort ()
Returnerar true om nästa värde som anges av användaren är ett giltigt kort värde.
Hur man får inmatning med javas scannerklass - dummies

Redaktörens val

Organisera e-postmarknadsföring innehåll för att matcha dina mål - dummies

Organisera e-postmarknadsföring innehåll för att matcha dina mål - dummies

När du utvecklar e-postmarknadsföring innehåll, överväga hur din publik kommer att uppleva dina avsikter. E-postmeddelanden ger större mening åt dina framtidsutsikter och kunder när innehållet du skapar och levererar är knutet samman under kända teman. När din tid är begränsad kan du bli frestad att skapa e-postinnehåll som passar ditt schema bättre ...

Nya formulärinmatningstyper i HTML5 - dummies

Nya formulärinmatningstyper i HTML5 - dummies

HTML-formulär är centrerade kring det ödmjuka men flexibla inmatningselementet . HTML5 lägger till ett antal väldigt användbara former av inmatning som hjälper till att göra HTML till ett mer modernt användargränssnitt. Även om stöd för dessa taggar inte är universellt är det säkert att börja använda dem nu. Varje webbläsare (även IE6) som inte förstår den avancerade ...

Utföra visuell designtest på en ny webbplats - dummies

Utföra visuell designtest på en ny webbplats - dummies

Det visuella designteamet för en webbplats kan skapa några olika "look and feel" -alternativ och testa dem med användare. Den här designen kallas perfekt för att passera en hemsida och en inre eller undersida av din webbplats, men de är inte 100 procent korrekta när det gäller ...

Redaktörens val

Objektiv till dina digitala SLR-dummies

Objektiv till dina digitala SLR-dummies

Zoomlinser är inte den enda typen av linser som är tillgängliga för din dSLR . Du borde veta hur de skiljer sig från de andra alternativen. Här är några av alternativen till zoomlinser i allmänhet och vanliga zoomlinser i synnerhet. Prime-objektiv En primärlins har en fast brännvidd. En lins med fast fokusering ...

Hur man skapar bra belysning för din digitala fotografi - dummies

Hur man skapar bra belysning för din digitala fotografi - dummies

Ja, du kan återskapa bra belysning om du vet vad du gör. Och ingenting kan förstöra ett foto snabbare än dålig belysning. Du kan göra många förbättringar till ett utmanande ämne helt enkelt genom att använda bra belysningsteknik. Din farbrors skalliga huvud, en tonåring som är mindre än perfekt, en hård upplyst strandplats, en droppe ...

ÖKa bildförstoring med telekonverterare - dummies

ÖKa bildförstoring med telekonverterare - dummies

En telekonverter är en sekundärlins som du placerar mellan din lins och kamerokroppen (precis som förlängningsröret). En telekonverter tar emot bilden som skapats av din lins och ger en förstorad version av den till kamerans digitala sensor. Detta kan vara ett användbart verktyg i makrofotografering men kan också vara ...

Redaktörens val

Undvik hack på sårbara trådlösa arbetsstationer - dummies

Undvik hack på sårbara trådlösa arbetsstationer - dummies

Trådlösa arbetsstationer har massor av säkerhetsproblem och kan vara inriktade på hackar - från svaga lösenord till opatchade säkerhetshål till lagring av WEP- och WPA-krypteringsnycklar lokalt. De flesta av de kända trådlösa klientens sårbarheter har blivit patchade av sina respektive leverantörer, men du vet aldrig om alla dina trådlösa system är ...

Grundläggande Mac Network Settings - dummies

Grundläggande Mac Network Settings - dummies

De flesta nätverksinställningarna på en Mac är automatiska. Om du föredrar kan du titta på och ändra standardnätverksinställningarna genom att följa dessa steg: