Per eseguire una con­ver­sio­ne string to int in Java puoi scegliere fra due semplici opzioni: parseInt() e valueOf(). Tuttavia, entrambe fun­zio­na­no solo se la stringa contiene esclu­si­va­men­te numeri interi e se l’in­ter­val­lo di valori non supera il tipo di dati integer.

Ope­ra­zio­ni 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 lin­guag­gio di pro­gram­ma­zio­ne. Se utilizzi una stringa composta soltanto da numeri interi, puoi con­ver­tir­la nel tipo di dati primitivo di Java detto integer. Mentre per la con­ver­sio­ne di Java int in string esistono almeno cinque pratiche soluzioni, per la con­ver­sio­ne opposta string to int in Java sono di­spo­ni­bi­li so­prat­tut­to due metodi: Integer parseInt() e Integer.valueOf(). Nelle parti seguenti ti mostriamo alcuni pratici esempi del loro fun­zio­na­men­to.

N.B.

Ricorda che questa con­ver­sio­ne funziona solo se il valore numerico è compreso nell’in­ter­val­lo fra -2147483648 e 2147483647. Numeri più grandi o più piccoli non possono essere raf­fi­gu­ra­ti con il tipo di dati integer.

Web Hosting
Diventa il n°1 della rete con il provider di hosting n°1 in Europa
  • Di­spo­ni­bi­li­tà garantita al 99,99%
  • Dominio, SSL ed e-mail inclusi
  • As­si­sten­za 24/7 in lingua italiana

Il metodo Integer.parseInt()

parseInt() è un metodo statico che ap­par­tie­ne alla classe integer e che permette di re­sti­tui­re 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)
java

Il suo fun­zio­na­men­to appare chiaro os­ser­van­do un breve esempio per questo metodo. A tal fine ini­zia­liz­zia­mo in­nan­zi­tut­to una stringa che contiene solo il valore a numero intero “7312”. Quindi eseguiamo un’ope­ra­zio­ne Java string to int con il metodo parseInt() e uti­liz­zia­mo 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);
	}
}
java

Il risultato è il seguente:

Il valore numerico all'interno della stringa è: 7312
java

Questo 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)
java

Il metodo Integer.valueOf()

Anche Integer.valueOf() è un metodo della classe integer. Esso dà come output l’in­ter­pre­ta­zio­ne decimale di un oggetto stringa ed è quindi adatto anche per una con­ver­sio­ne string to int. La sua sintassi Java si presenta così:

static int valueOf(int a)
java

Per chiarire il suo fun­zio­na­men­to, scegliamo nuo­va­men­te 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);
	}
}
java

Otteniamo quindi il seguente output:

Il valore numerico all'interno della stringa è: 7312
java

Il messaggio di errore che viene vi­sua­liz­za­to se la stringa contiene altri caratteri è lo stesso dell’esempio per parseInt().

Vai al menu prin­ci­pa­le