Convertir une chaîne en entier ou entier en Java

Conversion de chaîne en int ou Integer en Java

1. introduction

La conversion d'unString enint ouInteger est une opération très courante en Java. Dans cet article, nous montrerons plusieurs manières de traiter ce problème.

Il existe quelques moyens simples pour aborder cette conversion de base.

2. Integer.parseInt()

L'une des principales solutions consiste à utiliser la méthode statique dédiée deInteger:parseInt(), qui renvoie une valeur primitiveint:

@Test
public void givenString_whenParsingInt_shouldConvertToInt() {
    String givenString = "42";

    int result = Integer.parseInt(givenString);

    assertThat(result).isEqualTo(42);
}

3. Integer.valueOf()

Une autre option serait d'utiliser la méthode statiqueInteger.valueOf(), qui renvoie une instanceInteger:

@Test
public void givenString_whenCallingIntegerValueOf_shouldConvertToInt() {
    String givenString = "42";

    Integer result = Integer.valueOf(givenString);

    assertThat(result).isEqualTo(new Integer(42));
}

4. Constructeur deInteger

Vous pouvez également utiliser le constructeur deInteger:

@Test
public void givenString_whenCallingIntegerConstructor_shouldConvertToInt() {
    String givenString = "42";

    Integer result = new Integer(givenString);

    assertThat(result).isEqualTo(new Integer(42));
}

5. Integer.decode()

En outre,Integer.decode() fonctionne de manière similaire auxInteger.valueOf(), mais peut également accepter différentsnumber representations:

@Test
public void givenString_whenCallingIntegerDecode_shouldConvertToInt() {
    String givenString = "42";

    int result = Integer.decode(givenString);

    assertThat(result).isEqualTo(42);
}

6. NumberFormatException

Toutes les méthodes mentionnées ci-dessus lancent unNumberFormatException, lorsqu'elles rencontrent des valeursString inattendues. Ici vous pouvez voir un exemple d'une telle situation:

@Test(expected = NumberFormatException.class)
public void givenInvalidInput_whenParsingInt_shouldThrow() {
    String givenString = "nan";
    Integer.parseInt(givenString);
}

7. Avec goyave

Bien entendu, nous n’avons pas besoin de nous en tenir au noyau Java lui-même. Voici comment faire la même chose en utilisantInts.tryParse(), de Guava qui renvoie une valeurnull s'il ne peut pas analyser l'entrée:

@Test
public void givenString_whenTryParse_shouldConvertToInt() {
    String givenString = "42";

    Integer result = Ints.tryParse(givenString);

    assertThat(result).isEqualTo(42);
}

8. Conclusion

Dans cet article, nous avons exploré plusieurs façons de convertir des instancesString en instancesint ouInteger.

Tous les exemples de code peuvent, bien entendu, être trouvés dans le référentielGitHub.