Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Java

Java Scanner: Uitgebreide gids met praktische voorbeelden

Java Scanner onder de knie

Ontdek hoe je Java's Scanner-klasse gebruikt om tekst, getallen en complexe typen uit diverse bronnen te lezen, ondersteund duidelijke, real-world voorbeelden.

Inleiding

De Scanner-klasse in java.util laat je invoer vastleggen uit streams, bestanden, strings en de console. Hieronder lopen we de kerngebruikspatronen door.

Voorbeeld 1: Een volledige regel tekst lezen

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Voer je naam in: ");
        String naam = input.nextLine();
        System.out.println("Mijn naam is " + naam);
        input.close();
    }
}

Output

Voer je naam in: Kelvin
Mijn naam is Kelvin

De regel Scanner input = new Scanner(System.in); bouwt een Scanner die naar toetsenbordinvoer luistert. De nextLine()-methode consumeert de hele regel tot een line break.

Scanner-klasse importeren

Voordat je Scanner kunt gebruiken, importeer het:

import java.util.Scanner;

Scanner-objecten aanmaken

Afhankelijk van je invoerbron, instantieer een Scanner als volgt:

// Van een input stream (bijv. System.in)
Scanner sc1 = new Scanner(InputStream input);
// Van een bestand
Scanner sc2 = new Scanner(File bestand);
// Van een string
Scanner sc3 = new Scanner(String str);

Kern Scanner-methoden voor invoer

De Scanner-klasse biedt diverse methoden om verschillende datatypen te lezen. Hieronder een snelle referentie:

MethodeBeschrijving
nextInt()Lees een int
nextFloat()Lees een float
nextBoolean()Lees een boolean
nextLine()Lees een volledige regel tekst
next()Lees een enkel woord (tot whitespace)
nextByte()Lees een byte
nextDouble()Lees een double
nextShort()Lees een short
nextLong()Lees een long

Voorbeeld 2: nextInt() gebruiken

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("Voer een integer in: ");
        int data1 = input.nextInt();
        System.out.println("Met nextInt(): " + data1);
        input.close();
    }
}

Output

Voer een integer in: 22
Met nextInt(): 22

Voorbeeld 3: nextDouble() gebruiken

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Voer Double-waarde in: ");
        double waarde = input.nextDouble();
        System.out.println("Met nextDouble(): " + waarde);
        input.close();
    }
}

Output

Voer Double-waarde in: 33.33
Met nextDouble(): 33.33

Voorbeeld 4: next() gebruiken

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Voer je naam in: ");
        String waarde = input.next();
        System.out.println("Met next(): " + waarde);
        input.close();
    }
}

Output

Voer je naam in: Jonny Walker
Met next(): Jonny

Let op dat next() stopt bij de eerste whitespace, dus alleen de voornaam wordt gevangen.

Voorbeeld 5: nextLine() gebruiken

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Voer je naam in: ");
        String waarde = input.nextLine();
        System.out.println("Met nextLine(): " + waarde);
        input.close();
    }
}

Output

Voer je naam in: Jonny Walker
Met nextLine(): Jonny Walker

In tegenstelling tot next(), vangt nextLine() de volledige regel, inclusief spaties, tot een newline-karakter.

Aanbevolen lezing: Java Scanner skipping the nextLine()

Scanner met BigInteger en BigDecimal

Voor hoge-precisie getallen ondersteunt Scanner:

  • nextBigInteger() – Leest een BigInteger
  • nextBigDecimal() – Leest een BigDecimal

Voorbeeld: BigInteger en BigDecimal lezen

import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Voer een groot integer in: ");
        BigInteger waarde1 = input.nextBigInteger();
        System.out.println("Met nextBigInteger(): " + waarde1);
        System.out.print("Voer een groot decimaal in: ");
        BigDecimal waarde2 = input.nextBigDecimal();
        System.out.println("Met nextBigDecimal(): " + waarde2);
        input.close();
    }
}

Output

Voer een groot integer in: 987654321
Met nextBigInteger(): 987654321
Voer een groot decimaal in: 9.55555
Met nextBigDecimal(): 9.55555

Hoe Scanner intern werkt

Scanner leest een volledige regel, splitst het in tokens met whitespace als standaard. Elk token kan dan opgehaald worden met de juiste methode. Gegeven de invoer Hij is 22, zijn de tokens Hij, is en 22.

Tip: Tokens worden gescheiden door spaties, tabs of newlines tenzij je de delimiter aanpast.

Java

  1. Java's final-sleutelwoord begrijpen: variabelen, methoden en klassen
  2. Java instanceof operator: een uitgebreide gids
  3. Java-erfenis meesteren: concepten, typen en praktische voorbeelden
  4. Java geneste static classes begrijpen: gebruik, verschillen en voorbeelden
  5. Java anonieme inner classes meesteren: definitie, syntax en praktische voorbeelden
  6. Java Singleton patroon uitgelegd: hoe veilig te implementeren en gebruiken
  7. Java Reflectie meesteren: klassen, methoden en velden inspecteren tijdens runtime
  8. Java ObjectOutputStream: Serialisatie, methoden en praktische voorbeelden
  9. Java Scanner: Uitgebreide gids met praktische voorbeelden
  10. Java Generics: Herbruikbare, type-veilige code bouwen
  11. Java-bestandsbewerkingen onder de knie krijgen met java.io – Aanmaken, lezen, schrijven en verwijderen