Java >> Java tutorial >  >> Tag >> class

Java scanner klasse| import | nextline, nextint, undtagelse og eksempler

Java Scanner-klasse findes i pakken java.util. Scanner-klassen er vant til at få input fra de primitive datatyper som Strings, int, double osv. Den bryder inputtet ved hjælp af et mønster (regex), hvor standard-regulære udtryksmatch er mellemrum. Dette er den nemmeste måde at få input i java-programmet på.

I dette selvstudie lærer du, hvordan du importerer en Scanner-klasse i java, hvad er brugen til, hvordan du bruger det, vigtige metoder og mange eksempler.

Java Scanner Syntaks

En meget nem syntaks af Scanner-klassen efter import af java .util pakke oprette et scannerobjekt. Brug derefter en hvilken som helst metode.

Scanner sc = new Scanner(System.in);
     int i = sc.nextInt();

Sådan importerer du Scanner Java

Java Import scanner klasse ved starten af ​​programmet inde i java filen.

import java.util.Scanner;  // Import the Scanner class

Eksempel på Java-scanner

Lad os se den enkle Java-scannerstrenglæser. Hvor inputtypen er streng læst fra en konsol.

import java.util.Scanner;
 
public class Hello {
 
        public static void main(String[] args) {
            // Creating a Scanner object
            Scanner scanObj = new Scanner(System.in);
            System.out.println("Enter your name");
 
            // Read user input from console
            String input = scanObj.nextLine();
            System.out.println("You Entered: " + input);  // print user input
    }
}

Output :GIF med kodestruktur. For at bruge en scannerklasse i java skal du importere – importere java .util pakke eller importer java.util.Scanner

Inputtyper i scanneren

Ovenstående eksempel blev brugt Java scanner nextLine() metoder, som bruger til at hente streng input.

Men Java-scannerklassen understøtter alle primitive type input. Læs nedenstående liste over understøttede inputlistedatatyper med scannermetoder. Disse kaldes også for inputtyper i scannerklassen.

Datatype Metode Beskrivelse
boolesk nextBoolean() Læs boolesk værdi og returnerer denne værdi.
byte nextByte() Læs input som en byte .
dobbelt nextDouble() Læs input som en dobbelt .
float nextFloat() Læs input som en floa t .
int nextInt() Læs input som en int .
Streng nextLine() Læser en streng værdi fra brugeren.
lang nextLong() Læs input som en lang.
kort nextShort() Læs input som en forkortelse .

Eksempel på forskellige inputtyper metoder i Scanner-klassen

Lad os se en efter en metode til Scanner-klasseeksempler. Vi dækker ikke alle typer metoder, de fleste er de samme, du kan gøre det selv. Hvert eksempel har kodelinjer, kun andre dele som import og mani-metoder er samme ovenstående eksempel.

Scanner nextInt

En metode bruges til at læse næste input som en int datotype.

Scanner scanObj = new Scanner(System.in);
        System.out.println("Enter number");
        int input = scanObj.nextInt();
        System.out.println(" " + input);

Scanner NextLine

Java Scanner NextLine-metode, der bruges til at læse strenginputtype.

Scanner myObj = new Scanner(System.in); 
        System.out.println("Enter username");

        String userName = myObj.nextLine();  
        System.out.println("Username is: " + userName);

Java scanner nextDouble

En nextDouble-metode bruges til at køre dobbelt type data i java. Selv du indtaster int-værdien i konsollen det vil konvertere til dobbelt værdi.

Scanner myObj = new Scanner(System.in);
        System.out.println("Enter a double value");

        double value = myObj.nextDouble();
        System.out.println("value is: " + value);

Output: Indtast en dobbelt værdi
0
værdien er:0,0

Java scanner nextbyte

byte value = myObj.nextByte();

Undtagelse af scannerklasse

En scanner nextInt-metode vil give en fejl, hvis du indtaster strengen i en konsol. Se eksemplet nedenfor.

import java.util.Scanner;

public class Hello {

    public static void main(String[] args) {

        Scanner myObj = new Scanner(System.in);
        System.out.println("Enter number only ");

        int value = myObj.nextInt();
        System.out.println("value is: " + value);
    }
}


Bemærk:Brug af en try-catch blok kan forhindre – java scanner undtagelse.

Output: Se nedenfor GIF, når du indtaster tallet er fint, men hvis streng, vil det give en fejl - "java.util.InputMismatchException "

Anden vigtig metode og eksempler

En hasNext() og next() metoder er nyttige, se eksempler.

hasNext() Method

Scanner hasnext-metoden Returnerer sand, hvis denne scanner har et andet token i sin input. Ved at bruge denne metode kan du stoppe en loop eller en hvilken som helst betingelsessætning i programmet.

import java.util.Scanner;

public class Hello {

    public static void main(String[] args) {
        String s = "Hello World !";


        Scanner scanner = new Scanner(s);
        System.out.println("" + scanner.hasNext());


        System.out.println("" + scanner.nextLine());

        System.out.println("" + scanner.hasNext());

        // close the scanner
        scanner.close();
    }
}

Output:

next() metode

Scanner næste-metoden finder og returnerer det næste komplette token fra denne scanner. Et komplet token er foran og efterfulgt af input, der matcher afgrænsningsmønsteret.

import java.util.Scanner;

public class Hello {

    public static void main(String[] args) {
        String s = "Hello World !";


        Scanner scanner = new Scanner(s);
        System.out.println("" + scanner.next());
        System.out.println("" + scanner.next());

        scanner.close();
    }
}


Output: Hej
verden

Hvordan får du Scanner næste tegn?

Svar: Ved at bruge metoden Scanner.next() kan du tage det første eller et hvilket som helst tegn fra strengen.

Scanner scanner = new Scanner(s);
        char c = scanner.next().charAt(0);
        System.out.println(c);

Hvordan læser man en .txt-fil ved hjælp af Scanner-klassen i Java?

Svar :Java-scannerfil

import java.io.File;
import java.util.Scanner;

public class Hello {

    public static void main(String[] args) throws Exception {
        File file=new File("test.txt");
        Scanner sc=new Scanner(file);
        while(sc.hasNextLine()){
            System.out.println(sc.nextLine());
        }
    }
}

Denne klasse blev introduceret siden Java version 1.6, så det er de fleste metoder, der er arbejdet på den seneste og gamle java version 8 osv. Sig endelig til, hvis du har nogen tvivl og forslag.

Bemærk: Dette eksempel (projekt) er udviklet i IntelliJ IDEA 2018.2.6 (Community Edition)
JRE:11.0.1
JVM: OpenJDK 64-Bit Server VM af JetBrains s.r.o
macOS 10.14.1
Java version 11
Alle Java scanner klasse eri Java 11, så det kan ændre sig på forskelligt fra Java 9 eller 10 eller opgraderede versioner.


Java tag