JAVA

Scanner Localizzazione

Gestione del locale in Java con Scanner e useLocale(Locale.US): controllo del formato dei numeri decimali, separatori e compatibilità tra sistemi.

Durata

150 minuti

Software

Java JDK, Browser, onlinegdb.com

Gestione del Locale in Java con Scanner

Quando si utilizzano numeri decimali in Java, uno dei problemi più comuni riguarda il separatore decimale. In alcuni sistemi si utilizza la virgola, in altri il punto.

Per evitare errori di interpretazione, Java permette di definire un Locale nello Scanner tramite il metodo useLocale().

Problema senza Locale

Se il sistema operativo è configurato in formato europeo, il numero 3.5 può generare errore.

Scanner input = new Scanner(System.in);

System.out.print("Inserisci un numero decimale: ");
double n = input.nextDouble();

Soluzione: useLocale(Locale.US)

Impostando il locale su Locale.US, il programma accetta il punto come separatore decimale.

import java.util.Scanner;
import java.util.Locale;

public class Main {
    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);
        input.useLocale(Locale.US);

        System.out.print("Inserisci un numero decimale (es. 3.5): ");
        double n = input.nextDouble();

        System.out.println("Valore inserito: " + n);

        input.close();
    }
}

Cos’è Locale.US

LocaleFormato numeriEsempio
Locale.ITALYVirgola3,5
Locale.USPunto3.5

Perché è importante

  • Evita errori di InputMismatchException
  • Rende il programma compatibile tra sistemi diversi
  • Standardizza il formato di input

Applicazione pratica

In contesti internazionali (applicazioni web, software distribuiti), è fondamentale usare un formato coerente per i numeri.

Scanner input = new Scanner(System.in);
input.useLocale(Locale.US);

double prezzo = input.nextDouble();
double quantita = input.nextDouble();

double totale = prezzo * quantita;

System.out.println("Totale: " + totale);

Concetto chiave

  • Il locale influenza il formato dei numeri
  • Scanner segue le regole del Locale impostato
  • Locale.US usa il punto decimale
  • Locale.ITALY usa la virgola decimale
LABORATORIO

Gestione Locale in Scanner

Controllo del formato dei numeri decimali in Java


1 Test base Locale.US

Creare un programma che legge un numero decimale con punto.

input.useLocale(Locale.US);

2 Confronto formati

Testare input con punto e virgola (separatore decimale).

  • 3.5 → valido con Locale.US
  • 3,5 → non valido con Locale.US

3 Calcolo reale

Simulare un acquisto con prezzi decimali.

  • Prezzo prodotto
  • Quantità
  • Totale finale

4 Esercizio avanzato

  • Gestire input di più prodotti
  • Applicare Locale.US
  • Calcolare totale complessivo





Java, Scanner, Locale, useLocale, Double, Input, Programmazione,