En Java, lorsque nous opérons sur des chaînes, il arrive parfois que nous devions convertir un nombre représenté sous forme de chaîne en un type entier. Nous faisons généralement cela parce que nous pouvons opérer avec un ensemble large et flexible d’opérations sur les chaînes. La méthode généralement utilisée pour convertir une chaîne en entier en Java est analyserInt () de la Classe de chaîne .
Dans cet article, nous verrons comment convertir une String en int en Java.

1 million combien 0
Programme pour convertir une chaîne Java en entier
Prenons tout de suite un exemple pour nous habituer à la méthode de travail parseInt() :
Java
// Java program to demonstrate working parseInt()> // Where No NumberFormatException is Thrown> // Main class> public> class> GFG {> >// Main driver method> >public> static> void> main(String args[])> >{> >// Custom wide-varied inputs to illustrate> >// usage of valueOf() method> >int> decimalExample = Integer.parseInt(>'20'>);> >int> signedPositiveExample = Integer.parseInt(>'+20'>);> >int> signedNegativeExample = Integer.parseInt(>'-20'>);> >int> radixExample = Integer.parseInt(>'20'>,>16>);> >int> stringExample = Integer.parseInt(>'geeks'>,>29>);> >// Print commands on console> >System.out.println(decimalExample);> >System.out.println(signedPositiveExample);> >System.out.println(signedNegativeExample);> >System.out.println(radixExample);> >System.out.println(stringExample);> >}> }> |
>
>Sortir
20 20 -20 32 11670324>
Méthode parseInt() en Java
Il existe deux variantes de cette méthode :
- parseInt(Chaîne s) : Cette fonction analyse l'argument de chaîne comme un entier décimal signé.
- parseInt(String s, base int) : Cette fonction analyse l'argument de chaîne comme un entier signé dans la base spécifiée par le deuxième argument.
Syntaxe de parseInt
public static int parseInt(String str); public static int parseInt(String str, int radix);>
Paramètres
- chaîne : S tring qui doit être converti en un entier.
- base: est utilisé pendant l'analyse de la chaîne.
Type de retour
- Les deux méthodes convertissent la chaîne en son équivalent entier. La seule différence est celle de la base du paramètre. La première méthode peut être considérée avec base = 10 (Décimale).
Exception levée
- NumberFormatException est lancé par cette méthode si l'une des situations suivantes se produit.
Rappelons certains points clés associés aux deux variantes :
- La chaîne peut être nulle ou de longueur nulle
- La valeur représentée par la chaîne n'est pas une valeur de type int
- Spécifiquement pour la variante parseInt(String s, int radix) de la fonction :
- La base du deuxième argument est soit plus petite que Character.MIN_RADIX, soit plus grande que Character.MAX_RADIX.
- Aucun caractère de la chaîne n'est un chiffre de la base spécifiée, sauf que le premier caractère peut être un signe moins '-' ('u002D') ou un signe plus '+' ('u002B') à condition que la chaîne soit plus long que la longueur 1
- Si votre chaîne comporte des zéros non significatifs, la méthode parseInt() les ignorera.
Les cas de méthode parseInt()
Prenons un extrait de code aléatoire pour mieux comprendre les illustrations.
Cas 1 : parseInt(20, 16)
renvoie 32 , (2)*16^1 + (0)*16^0 = 32
Cas 2 : parseInt(2147483648, 10)
lance une NumberFormatException
Cas 3 : parseInt(99, 8)
lance une NumberFormatException
Raison: 9 n'est pas un chiffre accepté dans le système de numérotation octalCas 4 : parseInt(geeks, 28 ans)
lance une NumberFormatException
Cas 5 : parseInt (geeks, 29 ans)
renvoie 11670324, Raison: Le système numérique en base 29 peut avoir des chiffres de 0 à 9 suivis des caractères a,b,c… jusqu'à s
Cas 6 : parseInt (geeksforgeeks, 29)
lance une NumberFormatException comme Raison: le résultat n’est pas un entier.
Exceptions de format numérique de la méthode parseInt()
Exceptions causées par la méthode parseInt() mentionnée ci-dessous :
Java
// Java Program to Demonstrate Working of parseInt() Method> // Where NumberFormatException is Thrown> // Main class> public> class> GFG {> >// Main driver method> >public> static> void> main(String args[])> >{> >// NumberFormatException> >String invalidArguments =>''>;> > >// invalidArguments Error empty string> >// passed> >int> emptyString> >= Integer.parseInt(invalidArguments);> > >// The Converted Intger is out of bound> >// Too large to be called Integer> >int> outOfRangeOfInteger> >= Integer.parseInt(>'geeksforgeeks'>,>29>);> > >// Domain Number System> >int> domainOfNumberSystem> >= Integer.parseInt(>'geeks'>,>28>);> >// Print commands on console> >System.out.println(emptyString);> >System.out.println(outOfRangeOfInteger);> >System.out.println(domainOfNumberSystem);> >}> }> |
>
>
Sortir

De même, nous pouvons convertir la chaîne en n’importe quel autre type de données primitif :
- parseLong() : analyse la chaîne en Long
- parseDouble() : analyse la chaîne en double Si nous voulons convertir la chaîne en entier sans utiliser parseInt() , on peut utiliser valeur de() méthode . Il existe également deux variantes similaires à parseInt()
- Différence entre parseInt() et valueOf() : parseInt() analyse la chaîne et renvoie le type entier primitif. Cependant, valueOf() renvoie un objet entier.
Note: valueOf() utilise parseInt() en interne pour convertir en entier.
Une autre approche pour convertir une chaîne en entier
Outre la méthode parseInt() en Java, il existe une autre méthode de conversion de chaîne en entier. Vous trouverez ci-dessous l'implémentation de la méthode valueOf() qui est
Méthode valueOf()
La méthode Integer.valueOf() convertit une chaîne en un objet Integer. Comprenons cela par un exemple.
Vous trouverez ci-dessous la mise en œuvre de la méthode ci-dessus :
Java
onclick js
// Java Program to Demonstrate> // Working of valueOf() Method> // Main class> public> class> GFG {> >// Main driver method> >public> static> void> main(String args[])> >{> >// Custom wide-varied inputs to illustrate> >// usage of valueOf() method> >int> decimalExample = Integer.valueOf(>'20'>);> >int> signedPositiveExample = Integer.valueOf(>'+20'>);> >int> signedNegativeExample = Integer.valueOf(>'-20'>);> >int> radixExample = Integer.valueOf(>'20'>,>16>);> >int> stringExample = Integer.valueOf(>'geeks'>,>29>);> >// Print statements> >System.out.println(decimalExample);> >System.out.println(signedPositiveExample);> >System.out.println(signedNegativeExample);> >System.out.println(radixExample);> >System.out.println(stringExample);> >}> }> |
>
>Sortir
20 20 -20 32 11670324>