# 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.com/fr-be/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 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.com/fr-be/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.com/fr-be/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 `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.com/fr-be/digitalguide/sites-internet/developpement-web/string-to-int-en-java/](https://www.ionos.com/fr-be/digitalguide/sites-internet/developpement-web/string-to-int-en-java/) for AI/LLM consumption.