# Java String to int : les deux méthodes de conversion pratiques

Si vous souhaitez effectuer une conversion *String to int* en Java, deux options simples s’offrent à vous : `parseInt()` et `valueOf()`. Cependant, toutes deux ne fonctionnent que si la chaîne (*string*) ne contient que des nombres entiers et ne dépasse pas la plage de valeurs du type de données `Integer`.

## Opérations String to int en Java

Les [strings Java](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/java-strings/) sont des chaînes qui peuvent contenir des caractères, des chiffres ou des caractères spéciaux. Des chiffres seuls sous forme de valeurs entières peuvent être stockés dans le [langage de programmation](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/langages-de-programmation-web/) en tant que nombre entier (`int`). Si vous utilisez une chaîne de caractères uniquement composée de nombres entiers, vous pouvez la convertir en [primitive Java](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/java-primitives/) `Integer`. Il existe en langage Java au moins cinq façons pratiques de convertir [int to String](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/int-to-string-en-java/). Pour la conversion inverse, **String to int, seules deux méthodes s’imposent** : `Integer parseInt()` et `Integer.valueOf()`. Découvrons comment elles fonctionnent à l’aide d’exemples pratiques.

Note Notez que cette conversion ne fonctionne que si la valeur est comprise dans la plage de valeurs entre **-2147483648 et 2147483647**. Le type de données `Integer` ne permet donc pas de représenter des nombres plus grands ou plus petits que ceux-ci.

## La méthode `Integer.parseInt()`

`parseInt()` est une **méthode statique** de la classe `Integer`. Elle peut renvoyer la valeur d’un type de données complexe `string` sous la forme d’un type de données primitif `int`. Sa syntaxe ressemble à ceci :

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

Pour mieux comprendre son fonctionnement, étudions un exemple simple illustrant la méthode. Pour ce faire, initialisons d’abord une chaîne de caractères qui ne contient que la valeur entière « 7312 ». Ensuite, nous exécutons une opération Java String to int avec la méthode `parseInt()` et utilisons la [commande java](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/les-commandes-java/) `System.out.println` pour afficher la valeur générée. Le code correspondant prend la forme suivante :

```java
public class Main {
	public static void main(String args[]) {
		String str = "7312";
		int nombre = Integer.parseInt(str);
		System.out.println("La valeur à l’intérieur du string est : " + nombre);
	}
}
```

L’indication obtenue est :

```java
La valeur à l’intérieur du string est : 7312
```

Par contre, cette méthode ne fonctionne que si la chaîne est uniquement **composée de nombres entiers**. Si ce n’est pas le cas et que vous appliquez tout de même la méthode `parseInt()` comme suit :

```java
public class Main {
	public static void main(String args[]) {
		String str = "Le nombre recherché est 7312";
		int nombre = Integer.parseInt(str);
		System.out.println("La valeur à l’intérieur du string est : " + nombre);
	}
}
```

Vous obtiendrez le message d’erreur suivant :

```java
Exception in thread "main" java.lang.NumberFormatException: For input string: "Le nombre recherché est 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)
```

## La méthode `Integer.valueOf()`

`Integer.valueOf()` est également une méthode de la classe `Integer`. Elle fournit **l’interprétation décimale d’un objet String** et convient donc aussi pour une conversion String to int. En Java, sa syntaxe prend la forme suivante :

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

Pour illustrer son fonctionnement, voici un autre exemple simple :

```java
public class Main {
	public static void main(String args[]) {
		String newString = "7312";
		int parNombre = Integer.valueOf(newString);
		System.out.println("La valeur à l’intérieur du string est : " + parNombre);
	}
}
```

Nous obtenons l’indication suivante :

```java
La valeur à l’intérieur du string est : 7312
```

Le message d’erreur qui s’affiche si d’autres caractères sont placés à l’intérieur du string, est similaire à celui de l’exemple donné pour `parseInt()`.


This is a markdown version of: [https://www.ionos.fr/digitalguide/sites-internet/developpement-web/string-to-int-en-java/](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/string-to-int-en-java/) for AI/LLM consumption.