logo

Chaîne en entier en Java

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.



Chaîne Java en Int

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 :

  1. parseInt(Chaîne s) : Cette fonction analyse l'argument de chaîne comme un entier décimal signé.
  2. 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 :

  1. La chaîne peut être nulle ou de longueur nulle
  2. La valeur représentée par la chaîne n'est pas une valeur de type int
  3. 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
  4. 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 octal

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

  1. parseLong() : analyse la chaîne en Long
  2. 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()
  3. 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>