Analisi dei numeri dall'input
Converta il testo in numeri
Analisi dei numeri dall'input è una lezione Java Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Java Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Java Academy include 4 lezioni in totale.
Le righe sono sempre stringhe
readLine() restituisce sempre una String, anche quando l'utente digita 42. Per eseguire calcoli, deve analizzare quel testo e trasformarlo in un numero.
Java fornisce metodi di supporto come Integer.parseInt e Double.parseDouble proprio per questo scopo.
Integer.parseInt
Integer.parseInt(String) converte un testo come "42" nel valore int 42.
Una volta analizzato, può sommarlo, moltiplicarlo o confrontarlo come qualsiasi altro numero.
String text = "42";
int n = Integer.parseInt(text);
System.out.println(n + 1);Esempio eseguibile di parsing
Ecco un programma completo ed eseguibile che analizza una stringa definita nel codice e ne raddoppia il valore.
Non legge da System.in, quindi viene eseguito immediatamente e stampa il risultato.
public class Main {
public static void main(String[] args) {
String text = "21";
int n = Integer.parseInt(text);
System.out.println("Doubled: " + (n * 2));
}
}Lettura e parsing
Lo schema reale è: leggere una riga e poi analizzarla. Questo programma legge un numero dalla console e ne stampa il quadrato.
Poiché attende dati da System.in, qui non può essere eseguito automaticamente, ma rappresenta lo schema utilizzato ogni giorno.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
System.out.println("Square: " + (n * n));
}
}Utilizzi trim() prima del parsing
Gli spazi indesiderati impediscono il parsing. Integer.parseInt(" 42 ") genera un errore, mentre Integer.parseInt(" 42 ".trim()) funziona.
È una buona abitudine chiamare trim() sulla riga prima di analizzarla.
String raw = " 7 ";
int n = Integer.parseInt(raw.trim());
System.out.println(n);Parsing dei numeri decimali
Per i numeri decimali, utilizzi Double.parseDouble. Questo metodo trasforma un testo come "3.14" in un valore double.
È disponibile anche Long.parseLong per numeri interi molto grandi, oltre l'intervallo di int.
public class Main {
public static void main(String[] args) {
double pi = Double.parseDouble("3.14");
System.out.println(pi * 2);
}
}Più numeri su una riga
Spesso una riga contiene più numeri separati da spazi, ad esempio "10 20 30". Utilizzi split(" ") per suddividerla in un array di token String.
Analizzi quindi ogni token singolarmente.
String[] parts = "10 20 30".split(" ");
int a = Integer.parseInt(parts[0]);
int b = Integer.parseInt(parts[1]);
System.out.println(a + b);Somma dei numeri separati
Questo programma eseguibile suddivide una riga e somma tutti i numeri all'interno di un ciclo.
La stringa è definita nel codice, quindi il programma viene eseguito senza input; per utilizzarlo con la console, sostituisca il valore con br.readLine().
public class Main {
public static void main(String[] args) {
String line = "5 8 2 10";
String[] parts = line.split(" ");
int sum = 0;
for (String p : parts) {
sum += Integer.parseInt(p);
}
System.out.println("Sum: " + sum);
}
}L'input non valido genera un'eccezione
Se il testo non è un numero valido, ad esempio "hello" o una stringa vuota, parseInt genera una NumberFormatException.
Può gestire questa situazione con un blocco try/catch, così il programma non si interrompe a causa di un input non valido.
try {
int n = Integer.parseInt("hello");
} catch (NumberFormatException e) {
System.out.println("Not a number!");
}Il parsing sicuro in azione
Ecco un programma eseguibile che gestisce con eleganza l'input non valido invece di interrompersi.
Il blocco catch stampa un messaggio chiaro quando il testo non può essere convertito in un numero.
public class Main {
public static void main(String[] args) {
String input = "12x";
try {
int n = Integer.parseInt(input);
System.out.println(n);
} catch (NumberFormatException e) {
System.out.println("Invalid number: " + input);
}
}
}Checklist per il parsing
Quando trasforma l'input in numeri:
- Utilizzi
Integer.parseIntper i numeri interi eDouble.parseDoubleper i decimali. - Rimuova prima gli spazi indesiderati con
trim(). - Utilizzi
split(" ")per più numeri sulla stessa riga. - Racchiuda l'operazione in un blocco
try/catchper maggiore sicurezza.
Verifica rapida
Consideri cosa succede quando l'analisi non riesce.
Riepilogo
Ha imparato che le righe di input sono stringhe, analizzate con Integer.parseInt o Double.parseDouble. Ha usato trim() e split(" "), e ha gestito NumberFormatException per maggiore sicurezza.
Prossimo argomento: chiudere correttamente i flussi.
Domande Frequenti
La lezione «Analisi dei numeri dall'input» è gratuita?
Sì — il testo completo di «Analisi dei numeri dall'input» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Java Academy, passa a CoddyKit PRO. Il corso Java Academy include 4 lezioni in totale.
Cosa imparerò in «Analisi dei numeri dall'input»?
Converta il testo in numeri Eserciti Java Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Java Academy?
Non è richiesta alcuna esperienza precedente. Java Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Analisi dei numeri dall'input»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Java Academy?
Sì. Ogni lezione Java Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Perché BufferedReader
- Lettura delle righe
- Analisi dei numeri dall'input
- Chiusura sicura degli stream