Hvordan bruke skanner i Java

Hvordan bruke skanner i Java
Skanneren i Java er en klasse i Java.Utilpakke. Denne klassen tar sikte på å lese input fra en streng, tastatur, fil eller nettverksuttak. Denne artikkelen konsentrerer seg bare om leseinngang fra tastaturet og vise resultatet i terminalvinduet. Lignende ideer kan brukes til å lese innspill fra filen eller nettverkskanalen. Skanneren skriver ikke ut til terminalvinduet. For å skrive ut til terminalen, bruk systemet.ut objekt. Det er enkelt å bruke dette objektet til å skrive ut til terminalen, som illustrert nedenfor.

For å bruke skannerklassen, må den importeres først. Etter det må et objekt instantieres fra det. Etter å ha brukt skannerobjektet, må det lukkes. Input Stream -objektet som representerer tastaturet er system.i. Skanneren har mange metoder. Bare de ofte brukte vil bli forklart i denne artikkelen.

Artikkelinnhold

  • Enkel bruk av skannerklassen
  • Spytter inngangslinje i verdier
  • Lesing og validering av primitive datatyper
  • Tilordne input -token til en variabel
  • Konklusjon

Enkel bruk av skannerklassen

Følgende kode ber brukeren skrive inn en setning, og deretter viser den setningen:

Importer Java.util.Skanner;
public class theclass
public static void main (String [] args)
Skanner Scanobj = ny skanner (system.i);
System.ute.println ("Skriv inn setningen og trykk Enter:");
Strengsetning = Scanobj.NextLine ();
System.ute.println (setning);
Scanobj.Lukk();

Den første linjen importerer skannerklassen. I hovedfunksjonen oppretter den første linjen et skannerobjekt ved hjelp av “Systemet.i ”objekt for tastaturet. Så snart skannerobjektet er opprettet, begynner det å vente på innspill. Neste linje skriver ut en uttalelse og ber brukeren skrive inn en setning. Linjen som følger i koden bruker NextLine () -metoden til skannerobjektet for å lese brukerens setning etter at han trykker på Enter. Linjen etter, i koden, trykker setningen i terminalvinduet. Den siste linjen lukker skannerobjektet.

Spytter inngangslinje i verdier

Følgende kode deler inn inngangslinjen i ord (symboler), ved å bruke rommet som avgrenser:

Importer Java.util.Skanner;
public class theclass
public static void main (String [] args)
Skanner Scanobj = ny skanner (system.i);
System.ute.println ("type en linje med symboler, og trykk enter:");
mens (skanobj.hasnext ())
System.ute.Println (Scanobj.neste ());

Scanobj.Lukk();

hasNext () og neste () er to andre metoder for skannerobjektet. Når skannerobjektet leser en linje, holder den den. Neste () får tilgang til neste token (ord). hasnext () returnerer sant hvis det er noe annet symbol som ennå ikke er tilgjengelig.

Dessverre forventes det fortsatt at brukeren skriver inn innspill for splitting og re-displaying med denne koden. For å avslutte alt dette, trykk Ctrl+Z, og du bør være tilbake på ledeteksten.

I koden ovenfor skiller avgrenseren symboler i rommet. En annen karakter kan brukes. Følgende kode bruker komma. Ikke glem å trykke på Ctrl+Z for å avslutte løkken hvis du tester koden.

Importer Java.util.Skanner;
public class theclass
public static void main (String [] args)
Skanner Scanobj = ny skanner (system.i);
System.ute.println ("type en linje med symboler, og trykk enter:");
Scanobj.bruktLimiter (",");
mens (skanobj.hasnext ())
System.ute.Println (Scanobj.neste ());

Scanobj.Lukk();

Hvis du testet koden, ville du lagt merke til at mellomrom i symboler er inkludert som en del av symboler (utgang). Uttrykket, scanobj.bruktLimiter (“,”); Skrevet etter at inngangslinjen er lest; Det er det som gjør komma, avgrenseren.

Lesing og validering av primitive datatyper

NextBoolean () -metoden

I følgende kode forventes brukeren å skrive enten "ekte" eller "falsk" uten sitatene og deretter trykke på Enter -tasten hvis brukeren skriver noe annet, for eksempel "ja" eller "nei", vil en feilmelding være vist.

Importer Java.util.Skanner;
public class theclass
public static void main (String [] args)
System.ute.trykk ("Er du over 24? ");
Skanner Scanobj = ny skanner (system.i);
Boolean BL = Scanobj.nextboolean ();
if (bl == true)
System.ute.Println ("Du er over 24");

ellers hvis (bl == falsk)
System.ute.println ("du er under 24");

Scanobj.Lukk();

Siden Java vil utstede en feilmelding så lenge inngangen ikke er sant eller usant nøyaktig, har "annet hvis" blitt brukt i stedet for "ellers".

Forskjellen mellom metodene, print og println, er at utskriften forventer inngangen på gjeldende linje, mens println forventer inngangen på neste linje.

NextByte () -metoden

Med ASCII -karaktersettet er en karakter en byte. Imidlertid, med noen østlige karaktersett, kan en karakter bestå av mer enn en byte. Uavhengig av karaktersettet, leser og validerer neste byte -metoden neste byte av inngangen. Følgende kode kan brukes til dette formålet:

Importer Java.util.Skanner;
public class theclass
public static void main (String [] args)
System.ute.Skriv ut ("Typenummer < 128, press Enter: ");
Skanner Scanobj = ny skanner (system.i);
byte bt = scanobj.NextByte ();
System.ute.println (bt);
Scanobj.Lukk();

Hvis et tall større enn 127 eller et alfabetskarakter er lagt inn for denne koden, vil det bli utstedt en feilmelding.

NextInt () -metode

Neste heltalltoken som inngang kan også valideres og aksepteres. Følgende kode kan brukes:

Importer Java.util.Skanner;
public class theclass
public static void main (String [] args)
System.ute.print ("Skriv inn ethvert heltall:");
Skanner Scanobj = ny skanner (system.i);
int num = scanobj.nextInt ();
System.ute.println (num);
Scanobj.Lukk();

Ledende eller etterfølgende rom er fjernet. For denne koden vil enhver heltallverdi, inkludert verdier større enn 127, bli akseptert. Med disse NextXXX () -metodene, når valideringen mislykkes, er det utstedt en feilmelding.

NextBigInteger () -metoden

Det ser ut til at programvareingeniører aldri vil slutte å komme med nye ting. Et stort heltall er et heltall hvis verdi er mye større enn et heltall. Imidlertid, med Java, kan det leses på samme måte som heltallet. Følgende kode illustrerer dette:

Importer Java.util.Skanner;
Importer Java.matte.BigInteger;
public class theclass
public static void main (String [] args)
System.ute.println ("Skriv inn ethvert heltall for stort heltall:");
Skanner Scanobj = ny skanner (system.i);
BigInteger num = scanobj.NextBigInteger ();
System.ute.println (num);
Scanobj.Lukk();

Legg merke til importuttalelsen, “Importer Java.matte.BigInteger; ”. Legg også merke til at den store heltallstypen er begynt med en store bokstav B og ikke en små bokstav B.

NextFloat () -metoden

Neste float -symbolet som en inngang kan også valideres og aksepteres. Følgende kode kan brukes:

Importer Java.util.Skanner;
public class theclass
public static void main (String [] args)
System.ute.trykk ("Skriv inn en hvilken som helst float:");
Skanner Scanobj = ny skanner (system.i);
Float num = scanobj.NextFloat ();
System.ute.println (num);
Scanobj.Lukk();

Et eksempel på et flottørnummer er 23.456. Ledende eller etterfølgende rom er fjernet.

NextDouble ()

Den neste dobbelttokenet som inngang kan også valideres og aksepteres. Følgende kode kan brukes:

Importer Java.util.Skanner;
public class theclass
public static void main (String [] args)
System.ute.print ("Enter hvilken som helst dobbel:");
Skanner Scanobj = ny skanner (system.i);
dobbelt num = scanobj.nextDouble ();
System.ute.println (num);
Scanobj.Lukk();

Et eksempel på et dobbelt tall er 23.456. Et dobbelt tall er forskjellig fra en flottør fordi det har mindre feilmargin. Ledende eller etterfølgende rom er fjernet.

NextLine () -metoden

Nextline () -metoden er for en streng. Hvis strengen er inngangslinjen fra tastaturet etter å ha trykket Enter, kan den ha Newline -tegnet, '\ n'. Følgende kode kan brukes:

Importer Java.util.Skanner;
public class theclass
public static void main (String [] args)
System.ute.println ("Skriv inn en linje som har \\ n:");
Skanner Scanobj = ny skanner (system.i);
String str = scanobj.NextLine ();
System.ute.println (str);
Scanobj.Lukk();

Legg merke til at strengtypen er startet med store bokstaver og ikke små bokstaver.

Nextline (), hasNext () og Next () -metodene har blitt brukt tidligere, i denne artikkelen. Skanneren har andre metoder og andre primitive datametoder - se senere.

Tilordne inngang til en variabel

Inngang kan tilordnes en variabel, som følgende kode viser:

Importer Java.util.Skanner;
public class theclass
public static void main (String [] args)
Skanner Scanobj = ny skanner (system.i);
System.ute.print ("Enter Name:");
Strengnavn = Scanobj.NextLine ();
System.ute.print ("enter alder:");
int alder = scanobj.nextInt ();
System.ute.print ("skriv inn lønn:");
Dobbeltlønn = Scanobj.nextDouble ();
System.ute.println ("navn:" + navn + ", alder:" + alder + ", lønn:" + lønn);
Scanobj.Lukk();

Konklusjon

Skanneren i Java er en klasse i Java.Utilpakke. Denne klassen tar sikte på å lese input fra en streng, tastatur, fil eller nettverksuttak. Denne artikkelen har hovedsakelig konsentrert seg om å lese innspill fra tastaturet og vise resultatet i terminalvinduet. Lignende ideer kan brukes til å lese innspill fra streng, fil eller nettverkskanal.

For å lese hele linjen med tastaturinngang, bruk NextLine () -metoden. Linjen som en streng kan deles inn i symboler, ved hjelp av HasNext () og Next () -metodene, og mens Loop. Standard avgrenser for splitting er plassen, men programmereren kan velge en annen avgrensning. Ikke glem å gjøre Ctrl+Z for å stoppe mens Loop, om nødvendig. Å fjerne ledende og etterfølgende rom kan gjøres ved hjelp av andre ordninger som ikke er adressert i denne artikkelen. Validering av symbolene kan også gjøres ved hjelp av andre ordninger som ikke er adressert i denne artikkelen.

Primitive verdier kan leses ved bruk av NextBoolean (), NextByte (), NextInt (), etc. Disse NextXXX () -metodene gjør validering, og fjerner også ledende og etterfølgende rom.

Java -skanneren har mange flere metoder. Den grunnleggende bruken av skanneren er imidlertid blitt forklart i denne artikkelen. Utvalget av et token gjøres faktisk ved hjelp av vanlige uttrykksteknikker. Bruken av vanlige uttrykksteknikker er diskusjon, for en annen gang.