La classe Scanner è utilizzata per leggere input da varie fonti, come console, file, o stringhe. È molto usata per acquisire dati da tastiera in programmi interattivi.
Supporta la lettura di vari tipi di dati (stringhe, numeri, booleani, ecc.) e suddivide l’input in token in base a delimitatori (di default, spazi bianchi).

Package: java.util


CARATTERISTICHE PRINCIPALI

  • Può leggere dati da: System.in, file (File), stringhe (String), stream (InputStream).
  • Divide il testo in token usando un delimitatore (default: spazi bianchi).
  • Fornisce metodi specifici per diversi tipi di dati (nextInt(), nextDouble(), ecc.).
  • È bloccante: il programma attende finché l’input non è disponibile.

METODI PRINCIPALI

MetodoDescrizione
next()Legge il prossimo token come String (senza spazi).
nextLine()Legge l’intera riga fino al ritorno a capo.
nextInt()Legge il prossimo token come int.
nextDouble()Legge il prossimo token come double.
nextBoolean()Legge il prossimo token come boolean.
hasNext()Ritorna true se esiste un altro token.
hasNextInt() / hasNextDouble()Controllano se il prossimo token è del tipo specificato.
useDelimiter(String pattern)Cambia il delimitatore di tokenizzazione.
close()Chiude lo scanner e la risorsa associata.

ESEMPIO

import java.util.Scanner;
 
public class EsempioScanner {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in); // Lettura da tastiera
 
        System.out.print("Inserisci il tuo nome: ");
        String nome = scanner.nextLine();
 
        System.out.print("Inserisci la tua età: ");
        int eta = scanner.nextInt();
 
        System.out.println("Ciao " + nome + ", hai gia" + eta + " anni.");
 
        scanner.close(); // Chiusura
    }
}

Output possibile:

Inserisci il tuo nome: Giulio # input da tastiera
Inserisci la tua età: 20 # input da tastiera
Ciao Giulio, hai gia 20 anni.