Java Scanner (med eksempler)

I denne vejledning lærer vi om Java Scanner og dens metoder ved hjælp af eksempler.

Den Scannerklasse af java.utilpakken bruges til at læse input data fra forskellige kilder som input streams, brugere, filer osv Lad os tage et eksempel.

Eksempel 1: Læs en tekstlinje ved hjælp af scanneren

 import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter your name: "); // takes input from the keyboard String name = input.nextLine(); // prints the name System.out.println("My name is " + name); // closes the scanner input.close(); ) )

Produktion

 Indtast dit navn: Kelvin Mit navn er Kelvin

I ovenstående eksempel bemærk linjen

 Scanner input = new Scanner(System.in);

Her har vi oprettet et objekt med Scannernavngivet input.

Den System.inparameter anvendes til at tage input fra standard input. Det fungerer ligesom at tage input fra tastaturet.

Vi har derefter brugt nextLine()metoden i Scannerklassen til at læse en tekstlinje fra brugeren.

Nu hvor du har en idé om Scanner, lad os udforske mere om det.

Importer scannerklasse

Som vi kan se fra ovenstående eksempel, skal vi importere java.util.Scannerpakken, før vi kan bruge Scannerklassen.

 import java.util.Scanner;

Hvis du vil lære mere om import af pakker, skal du besøge Java-pakker.

Opret et scannerobjekt i Java

Når vi først har importeret pakken, kan vi oprette Scannerobjekter her.

 // read input from the input stream Scanner sc1 = new Scanner(InputStream input); // read input from files Scanner sc2 = new Scanner(File file); // read input from a string Scanner sc3 = new Scanner(String str);

Her har vi oprettet objekter i Scannerklassen, der læser input fra henholdsvis InputStream, File og String.

Java-scannermetoder til at tage input

Den Scannerklasse giver forskellige metoder, der tillader os at læse input af forskellige typer.

Metode Beskrivelse
nextInt() læser en intværdi fra brugeren
nextFloat() læser en floatværdi fra brugeren
nextBoolean() læser en booleanværdi fra brugeren
nextLine() læser en tekstlinje fra brugeren
next() læser et ord fra brugeren
nextByte() læser en byteværdi fra brugeren
nextDouble() læser en double-værdi fra brugeren
nextShort() læser en shortværdi fra brugeren
nextLong() læser en longværdi fra brugeren

Eksempel 2: Java Scanner nextInt ()

 import java.util.Scanner; class Main ( public static void main(String() args) ( // creates a Scanner object Scanner input = new Scanner(System.in); System.out.println("Enter an integer: "); // reads an int value int data1 = input.nextInt(); System.out.println("Using nextInt(): " + data1); input.close(); ) )

Produktion

 Indtast et heltal: 22 Brug nextInt (): 22

I ovenstående eksempel har vi brugt nextInt()metoden til at læse et heltal.

Eksempel 3: Java Scanner nextDouble ()

 import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter Double value: "); // reads the double value double value = input.nextDouble(); System.out.println("Using nextDouble(): " + value); input.close(); ) )

Produktion

 Indtast dobbelt værdi: 33.33 Brug af nextDouble (): 33.33

I ovenstående eksempel har vi brugt nextDouble()metoden til at læse en flydende punktværdi.

Eksempel 4: Java Scanner næste ()

 import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter your name: "); // reads the entire word String value = input.next(); System.out.println("Using next(): " + value); input.close(); ) )

Produktion

 Indtast dit navn: Jonny Walker Brug næste (): Jonny

I eksemplet ovenfor har vi brugt next()metoden til at læse en streng fra brugeren.

Her har vi angivet det fulde navn. Men den next()metode læser kun det første navn.

Dette skyldes, at next()metoden læser input op til det hvide mellemrumstegn . Når der er fundet et mellemrum , returnerer det strengen (undtagen det hvide område).

Eksempel 5: Java Scanner nextLine ()

 import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter your name: "); // reads the entire line String value = input.nextLine(); System.out.println("Using nextLine(): " + value); input.close(); ) )

Produktion

 Indtast dit navn: Jonny Walker Brug af nextLine (): Jonny Walker

I det første eksempel har vi brugt nextLine()metoden til at læse en streng fra brugeren.

I modsætning til next(), nextLine()læser metoden hele inputlinjen inklusive mellemrum. Metoden afsluttes, når den møder et næste linjekarakter .

Recommended Reading: Java Scanner skipping the nextLine().

Java Scanner with BigInteger and BigDecimal

Java scanner can also be used to read the big integer and big decimal numbers.

  • nextBigInteger() - reads the big integer value from the user
  • nextBigDecimal() - reads the big decimal value from the user

Example 4: Read BigInteger and BigDecimal

 import java.math.BigDecimal; import java.math.BigInteger; import java.util.Scanner; class Main ( public static void main(String() args) ( // creates an object of Scanner Scanner input = new Scanner(System.in); System.out.print("Enter a big integer: "); // reads the big integer BigInteger value1 = input.nextBigInteger(); System.out.println("Using nextBigInteger(): " + value1); System.out.print("Enter a big decimal: "); // reads the big decimal BigDecimal value2 = input.nextBigDecimal(); System.out.println("Using nextBigDecimal(): " + value2); input.close(); ) )

Output

 Enter a big integer: 987654321 Using nextBigInteger(): 987654321 Enter a big decimal: 9.55555 Using nextBigDecimal(): 9.55555

In the above example, we have used the java.math.BigInteger and java.math.BigDecimal package to read BigInteger and BigDecimal respectively.

Working of Java Scanner

Den Scannerklasse læser en hel linje og opdeler linjen ind tokens. Tokens er små elementer, der har en vis betydning for Java-kompilatoren. For eksempel,

Antag, at der er en inputstreng:

 He is 22

I dette tilfælde læser scannerobjektet hele linjen og deler strengen i tokens: " Han ", " er " og " 22 ". Objektet gentager derefter over hvert token og læser hvert token ved hjælp af dets forskellige metoder.

Bemærk : Som standard bruges hvidt mellemrum til at opdele tokens.

Interessante artikler...