# 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](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/java-string/) 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](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/linguaggi-programmazione-web/). Se utilizzi una stringa composta soltanto da numeri interi, puoi convertirla nel [tipo di dati primitivo di Java](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/tipi-primitivi-di-java/) detto integer. Mentre per la conversione di [Java int in string](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/convertire-int-in-string-in-java/) 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.

N.B. 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.

## 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:

```java
static int parseInt(String s)
```

Il 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](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/comandi-java/) `System.out.println` per emettere il valore. Il relativo codice è questo:

```java
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);
	}
}
```

Il risultato è il seguente:

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

Questo metodo funziona però soltanto se la stringa **contiene solo numeri interi**. In caso contrario e se esegui comunque il metodo `parseInt()` …

```java
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);
	}
}
```

… ottieni questo messaggio di errore:

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

## Il 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ì:

```java
static int valueOf(int a)
```

Per chiarire il suo funzionamento, scegliamo nuovamente un semplice esempio:

```java
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);
	}
}
```

Otteniamo quindi il seguente output:

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

Il messaggio di errore che viene visualizzato se la stringa contiene altri caratteri è lo stesso dell’esempio per `parseInt()`.


This is a markdown version of: [https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/java-string-to-int/](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/java-string-to-int/) for AI/LLM consumption.