String to int in Java: i due metodi più pratici per la conversione
Per eseguire una conversione string to int in Java puoi scegliere fra due semplici opzioni: parseInt()
e valueOf()
. Tuttavia, entrambe funzionano solo se la stringa contiene esclusivamente numeri interi e se l’intervallo di valori non supera il tipo di dati integer.
Operazioni string to int in Java
Le stringhe in Java sono sequenze che possono contenere lettere, cifre o caratteri speciali. Le singole cifre sotto forma di valori a numeri interi possono essere salvate come integer (int) in questo linguaggio di programmazione. Se utilizzi una stringa composta soltanto da numeri interi, puoi convertirla nel tipo di dati primitivo di Java detto integer. Mentre per la conversione di Java int in string esistono almeno cinque pratiche soluzioni, per la conversione opposta string to int in Java sono disponibili soprattutto due metodi: Integer parseInt()
e Integer.valueOf()
. Nelle parti seguenti ti mostriamo alcuni pratici esempi del loro funzionamento.
Ricorda che questa conversione funziona solo se il valore numerico è compreso nell’intervallo fra -2147483648 e 2147483647. Numeri più grandi o più piccoli non possono essere raffigurati con il tipo di dati integer.
- Certificato SSL e protezione DDoS
- Velocità, flessibilità e scalabilità
- Dominio e consulente personale
- 1 anno gratis del gestionale di fatturazione elettronica FlexTax
Il metodo Integer.parseInt()
parseInt()
è un metodo statico che appartiene alla classe integer e che permette di restituire il valore numerico di un tipo di dati complesso string sotto forma del tipo di dati primitivo int. La sua sintassi si presenta nel modo seguente:
static int parseInt(String s)
javaIl suo funzionamento appare chiaro osservando un breve esempio per questo metodo. A tal fine inizializziamo innanzitutto una stringa che contiene solo il valore a numero intero “7312”. Quindi eseguiamo un’operazione Java string to int con il metodo parseInt()
e utilizziamo il comando Java System.out.println
per emettere il valore. Il relativo codice è questo:
public class Main {
public static void main(String args[]) {
String str = "7312";
int numero = Integer.parseInt(str);
System.out.println("Il valore numerico all'interno della stringa è: " + numero);
}
}
javaIl risultato è il seguente:
Il valore numerico all'interno della stringa è: 7312
javaQuesto metodo funziona però soltanto se la stringa contiene solo numeri interi. In caso contrario e se esegui comunque il metodo parseInt()
…
public class Main {
public static void main(String args[]) {
String str = "Il numero cercato è 7312";
int numero = Integer.parseInt(str);
System.out.println("Il valore numerico all'interno della stringa è: " + numero);
}
}
java… ottieni questo messaggio di errore:
Exception in thread "main" java.lang.NumberFormatException: For input string: "Il numero cercato è 7312"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67)
at java.base/java.lang.Integer.parseInt(Integer.java:661)
at java.base/java.lang.Integer.parseInt(Integer.java:777)
at Main.main(Main.java:4)
javaIl metodo Integer.valueOf()
Anche Integer.valueOf()
è un metodo della classe integer. Esso dà come output l’interpretazione decimale di un oggetto stringa ed è quindi adatto anche per una conversione string to int. La sua sintassi Java si presenta così:
static int valueOf(int a)
javaPer chiarire il suo funzionamento, scegliamo nuovamente un semplice esempio:
public class Main {
public static void main(String args[]) {
String newString = "7312";
int parNumero = Integer.parseInt(newString);
System.out.println("Il valore numerico all'interno della stringa è: " + parNumero);
}
}
javaOtteniamo quindi il seguente output:
Il valore numerico all'interno della stringa è: 7312
javaIl messaggio di errore che viene visualizzato se la stringa contiene altri caratteri è lo stesso dell’esempio per parseInt()
.