how convert java string int tutorial with examples
Ce didacticiel explique les moyens de convertir une chaîne Java en Integer à l'aide des méthodes Integer.parseInt et Integer.ValueOf avec des exemples de code:
Nous allons couvrir les deux méthodes statiques de classe Integer suivantes qui sont utilisées pour convertir Java String en valeur int:
- Integer.parseInt ()
- Integer.valueOf ()
=> Consultez TOUS les didacticiels Java ici
Ce que vous apprendrez:
- Conversion de chaîne Java en Int
- Conclusion
Conversion de chaîne Java en Int
Prenons un scénario dans lequel nous devons effectuer une sorte d’opération arithmétique sur un nombre, mais cette valeur numérique est disponible sous la forme d’une chaîne. Supposons que le numéro soit récupéré sous forme de texte provenant du champ de texte d'une page Web ou d'une zone de texte d'une page Web.
Dans un tel scénario, nous devons d'abord convertir cette chaîne pour récupérer des nombres au format entier.
Par exemple, considérons un scénario où nous voulons ajouter 2 nombres. Ces valeurs sont extraites sous forme de texte de votre page Web sous la forme «300» et «200» et nous souhaitons effectuer une opération arithmétique sur ces nombres.
Comprenons cela à l'aide d'un exemple de code. Ici, nous essayons d'ajouter 2 nombres «300» et «200» et de les affecter à la variable «c». Lorsque nous imprimons «c», nous attendons la sortie sur une console comme «500».
package com.softwaretestinghelp; public class StringIntDemo{ public static void main(String() args) { //Assign text '300' to String variable String a='300'; //Assign text '200' to String variable String b='200'; //Add variable value a and b and assign to c String c=a+b; //print variable c System.out.println('Variable c Value --->'+c);//Expected output as 500 } } Here is the program Output : Variable c Value --->300200
Mais, dans le programme ci-dessus, la sortie réelle imprimée sur la console est
«Valeur c variable -> 300200» .
transtypage de caractères en chaîne c ++
Quelle pourrait être la raison de l'impression de cette sortie?
La réponse à cela est que lorsque nous avons fait a + b, nous utilisons l’opérateur «+» comme concaténation. Donc, dans c = a + b; Java concatène les chaînes a et b, c'est-à-dire qu'il concatène deux chaînes «300» et «200» et imprime '300200'.
Donc, cela se produit lorsque nous essayons d'ajouter deux chaînes:
Alors, que faut-il faire si on veut additionner ces deux nombres?
Pour cela, nous devons d'abord convertir ces chaînes en nombres, puis effectuer une opération arithmétique sur ces nombres. Afin de convertir Java String en int, nous pouvons utiliser les méthodes suivantes fournies par la classe Java Integer.
- Integer.parseInt ()
- Integer.valueOf ()
Voyons ces méthodes une par une en détail.
# 1) Utilisation de la méthode Java Integer.parseInt ()
La méthode parseInt () est fournie par la classe Integer class. La classe Integer est appelée la classe Wrapper car elle encapsule une valeur du type primitif int dans un objet.
Jetons un œil à la signature de la méthode ci-dessous:
public static int parseInt (String str) lève NumberFormatException
public static Integer valueOf (String str) renvoie NumberFormatException
Il s'agit d'une méthode statique fournie par la classe Integer qui renvoie un objet d'une classe Integer ayant une valeur qui est spécifiée par l'objet String qui lui est passé. Ici, l'interprétation de l'argument passé se fait sous la forme d'un entier décimal signé.
C'est le même que l'argument passé à la méthode parseInt (java.lang.String). Le résultat renvoyé est un objet de classe Integer qui représente la valeur entière spécifiée par la chaîne. En termes simples, la méthode valueOf () renvoie un objet Integer égal à la valeur de
new Integer (Integer.parseInt (str))
Ici, le paramètre «str» est une chaîne contenant la représentation entière et la méthode renvoie un objet Integer contenant la valeur représentée par le «str» dans la méthode.
Cette méthode lève une exception NumberFormatException lorsque la chaîne ne contient pas d'entier analysable.
Integer.parseInt (), méthode pour une chaîne sans signes
Essayons de comprendre comment utiliser cette méthode Integer.parseInt () dans le même programme Java que nous avons vu dans notre exemple précédent.
package com.softwaretestinghelp; /** * This class demonstrates sample code to convert String to int Java program * using Integer.parseInt() method using String having decimal digits without * ASCII sign i.e. plus + or minus - * */ public class StringIntDemo { public static void main(String() args) { //Assign text '300' to String variable a String a='300'; //Pass a i.e.String “300” as a parameter to parseInt() //to convert String 'a' value to integer //and assign it to int variable x int x=Integer.parseInt(a); System.out.println('Variable x value --->'+x); //Assign text '200' to String variable b String b='200'; //Pass b i.e.String “200” as a parameter to parseInt() //to convert String 'b' value to integer //and assign it to int variable y int y=Integer.parseInt(b); System.out.println('Variable y value --->'+y); //Add integer values x and y i.e.z = 300+200 int z=x + y; //convert z to String just by using '+' operator and appending '' String c=z + ''; //Print String value of c System.out.println('Variable c value --->'+c); } }
Voici la sortie du programme:
Valeur x variable -> 300
Variable et valeur -> 200
Valeur c variable -> 500
Ainsi, maintenant, nous sommes en mesure d'obtenir la sortie souhaitée, c'est-à-dire la somme des deux nombres représentés sous forme de texte en les convertissant en valeur int, puis en effectuant une opération supplémentaire sur ces nombres.
Integer.parseInt (), méthode pour une chaîne avec des signes
Comme on le voit dans la description de la méthode Integer.parseInt () ci-dessus, le premier caractère est autorisé à être un signe moins ASCII '-' pour l'indication d'une valeur négative ou un signe ASCII plus '+' pour l'indication d'un signe positif évaluer. Essayons le même programme avec une valeur négative.
Voyons l'exemple de programme avec des valeurs et des signes tels que «+» et «-».
Nous utiliserons les valeurs de chaîne signées telles que «+75» et «-75000» et les analyserons en nombre entier, puis les comparerons pour trouver un nombre plus grand entre ces 2 nombres:
package com.softwaretestinghelp; /** * This class demonstrates sample code to convert string to int Java * program using Integer.parseInt() method * on string having decimal digits with ASCII signs i.e. plus + or minus - * @author * */ public class StringIntDemo1 { public static void main(String() args) { //Assign text '75' i.e.value with ‘+’ sign to string variable a String a='+75'; //Pass a i.e.String “+75” as a parameter to parseInt() //to convert string 'a' value to integer //and assign it to int variable x int x =Integer.parseInt(a); System.out.println('Variable x value --->'+x); //Assign text '-75000' i.e.value with ‘-’ sign to string variable b String b='-75000'; //Pass b i.e.String “-75000” as a parameter to parseInt() //to convert string 'b' value to integer //and assign it to int variable y int y = Integer.parseInt(b); System.out.println('Variable y value --->'+y); //Get higher value between int x and y using Math class method max() int maxValue = Math.max(x,y); //convert maxValue to string just by using '+' operator and appending '' String c = maxValue + ''; //Print string value of c System.out.println('Larger number is --->'+c); }
Voici la sortie du programme:
Valeur x variable -> 75
Variable et valeur -> - 75000
Le plus grand nombre est -> 75
Integer.parseInt (), méthode pour une chaîne avec des zéros non significatifs
Dans certains cas, nous devons également avoir des opérations arithmétiques sur les nombres avec les zéros non significatifs. Voyons comment convertir une chaîne comportant un nombre avec des zéros non significatifs en valeur int à l'aide de la méthode Integer.parseInt ().
Par exemple, dans certains systèmes logiciels de domaine financier, c'est un format standard pour avoir un numéro de compte ou un montant avec des zéros non significatifs. Comme, dans l'exemple de programme suivant, nous calculons le montant à l'échéance du montant du dépôt fixe en utilisant le taux d'intérêt et le montant du dépôt fixe.
Ici, le montant est spécifié en utilisant des zéros non significatifs. Ces valeurs String avec des zéros non significatifs sont analysées en valeurs entières à l'aide de Integer.
parseInt () comme vu dans le programme ci-dessous:
package com.softwaretestinghelp; /** * This class demonstrates sample program to convert string with leading zeros to int java * using Integer.parseInt() method * * @author * */ public class StringIntDemo2{ public static void main(String() args) { //Assign text '00010000' i.e.value with leading zeros to string variable savingsAmount String fixedDepositAmount='00010000'; //Pass 0010000 i.e.String “0010000” as a parameter to parseInt() //to convert string '0010000' value to integer //and assign it to int variable x int fixedDepositAmountValue = Integer.parseInt(fixedDepositAmount); System.out.println('You have Fixed Deposit amount --->'+ fixedDepositAmountValue+' INR'); //Assign text '6' to string variable interestRate String interestRate = '6'; //Pass interestRate i.e.String “6” as a parameter to parseInt() //to convert string 'interestRate' value to integer //and assign it to int variable interestRateVaue int interestRateValue = Integer.parseInt(interestRate); System.out.println('You have Fixed Deposit Interst Rate --->' + interestRateValue+'% INR'); //Calculate Interest Earned in 1 year tenure int interestEarned = fixedDepositAmountValue*interestRateValue*1)/100; //Calcualte Maturity Amount of Fixed Deposit after 1 year int maturityAmountValue = fixedDepositAmountValue + interestEarned; //convert maturityAmount to string using format()method. //Use %08 format specifier to have 8 digits in the number to ensure the leading zeroes String maturityAmount = String.format('%08d', maturityAmountValue); //Print string value of maturityAmount System.out.println('Your Fixed Deposit Amount on maturity is --->'+ maturityAmount+ ' INR'); } }
Voici la sortie du programme:
Vous avez un montant de dépôt fixe -> 10000 INR
Vous avez un taux d'intérêt de dépôt fixe -> 6% INR
Votre montant de dépôt fixe à l'échéance est de -> 00010600 INR
Ainsi, dans l'exemple de programme ci-dessus, nous transmettons «00010000» à la méthode parseInt () et imprimons la valeur.
String fixedDepositAmount='00010000'; int fixedDepositAmountValue = Integer. parseInt (fixedDepositAmount); System. out .println('You have Fixed Deposit amount --->'+ fixedDepositAmountValue+' INR');
Nous verrons la valeur affichée sur la console car vous avez un montant de dépôt fixe -> 10000 INR
Ici, lors de la conversion en une valeur entière, les zéros non significatifs sont supprimés.
Ensuite, nous avons calculé le montant à l'échéance du dépôt fixe sous la forme d'un entier '10600' et formaté la valeur du résultat à l'aide du spécificateur de format% 08 pour récupérer les zéros non significatifs.
String maturityAmount = String. format ('%08d', maturityAmountValue);
Lorsque nous imprimons la valeur de la chaîne formatée,
System. out .println('Your Fixed Deposit Amount on maturity is --->'+ maturityAmount+ ' INR');
Nous pouvons voir la sortie imprimée sur la console comme Votre montant de dépôt fixe à l'échéance est de -> 00010600 INR
NumberFormatException
Dans la description de Integer.parseInt () méthode, nous avons également vu une exception lancée par la méthode parseInt () i.e. NumberFormatException.
Cette méthode lève une exception i.e. NumberFormatException lorsque la chaîne ne contient pas d'entier analysable.
Voyons donc le scénario dans lequel cette exception est levée.
Voyons l'exemple de programme suivant pour comprendre ce scénario. Ce programme invite l'utilisateur à entrer le pourcentage obtenu et renvoie la note reçue. Pour cela, il analyse la valeur String entrée par l'utilisateur en une valeur entière.
Package com.softwaretestinghelp; import java.util.Scanner; /** * This class demonstrates sample code to convert string to int Java * program using Integer.parseInt() method having string with non decimal digit and method throwing NumberFormatException * @author * */ public class StringIntDemo3{ private static Scanner scanner; public static void main(String() args){ //Prompt user to enter input using Scanner and here System.in is a standard input stream scanner = new Scanner(System.in); System.out.print('Please Enter the percentage you have scored:'); //Scan the next token of the user input as an int and assign it to variable precentage String percentage = scanner.next(); //Pass percentage String as a parameter to parseInt() //to convert string 'percentage' value to integer //and assign it to int variable precentageValue int percentageValue = Integer.parseInt(percentage); System.out.println('Percentage Value is --->' + percentageValue); //if-else loop to print the grade if (percentageValue>=75) { System.out.println('You have Passed with Distinction'); }else if(percentageValue>60) { System.out.println('You have Passed with Grade A'); }else if(percentageValue>50) { System.out.println('You have Passed with Grade B'); }else if(percentageValue>35) { System.out.println('You have Passed '); }else { System.out.println('Please try again '); } } }
Voici la sortie du programme:
Essayons avec 2 valeurs d'entrée différentes entrées par l'utilisateur.
1. Avec une valeur entière valide
Veuillez saisir le pourcentage que vous avez obtenu: 82
La valeur en pourcentage est -> 82
Vous avez réussi avec distinction
2. Avec valeur entière InValid
Veuillez entrer le pourcentage que vous avez obtenu: 85a
Exception dans le thread «main» java.lang.NumberFormatException: pour la chaîne d'entrée: «85a»
à java.lang.NumberFormatException.forInputString (source inconnue)
à java.lang.Integer.parseInt (source inconnue)
à java.lang.Integer.parseInt (source inconnue)
à com.softwaretestinghelp.StringIntDemo3.main (StringIntDemo3.java:26)
Ainsi, comme on le voit dans la sortie du programme,
# 1) Lorsque l'utilisateur entre une valeur valide, c'est-à-dire 82 comme entrée, la sortie affichée sur la console est la suivante:
La valeur en pourcentage est -> 82
Vous avez réussi avec distinction
# 2) Lorsque l'utilisateur entre une valeur invalide, c'est-à-dire 85a comme entrée, la sortie affichée sur la console est la suivante:
Veuillez entrer le pourcentage que vous avez obtenu: 85a
Exception dans le thread «main» java.lang.NumberFormatException: pour la chaîne d'entrée: «85a»
à java.lang.NumberFormatException.forInputString (source inconnue)
à java.lang.Integer.parseInt (source inconnue)
à java.lang.Integer.parseInt (source inconnue)
à com.softwaretestinghelp.StringIntDemo3.main (StringIntDemo3.java:26)
java.lang.NumberFormatException est levée lors de l'analyse de 85a dans la méthode Integer.parseInt () comme '85a' a le caractère 'a' qui n'est pas un chiffre décimal ni le signe ASCII '+' ou '-' c'est-à-dire que '85a' n'est pas l'analysable entier pour la méthode Integer.parseInt ().
Il s'agissait donc de l'un des moyens de convertir Java String en int. Voyons l'autre façon dont Java convertit String en int, c'est-à-dire en utilisant la méthode Integer.valueOf ().
# 2) En utilisant Integer. valueOf (), méthode
valueOf () est également une méthode statique de classe Integer.
Jetons un œil à la signature de la méthode ci-dessous:
public static int parseInt (String str) lève NumberFormatException
Il s'agit d'une méthode statique fournie par la classe Integer qui retourne un objet d'un classInteger dont la valeur est spécifiée par l'objet String qui lui est passé. Ici, l'interprétation de l'argument passé se fait sous la forme d'un entier décimal signé.
C'est le même que l'argument passé à la méthode parseInt (java.lang.String). Le résultat renvoyé est un objet de classe Integer qui représente la valeur entière spécifiée par la chaîne. En termes simples, la méthode valueOf () renvoie un objet Integer égal à la valeur de Nouveau Entier (Integer.parseInt (str))
Ici, le paramètre «str» est une chaîne contenant la représentation entière et la méthode renvoie un objet Integer contenant la valeur représentée par le «str» dans la méthode. Cette méthode lève l'exception NumberFormatException lorsque la chaîne ne contient pas d'entier analysable.
Voyons comment utiliser cette méthode Integer.valueOf ().
Voici un exemple de programme. Cet exemple de code calcule la température moyenne de 3 jours de la semaine. Ici, pour convertir la température, les valeurs sont affectées en tant que valeur de chaîne à une valeur entière. Pour cette conversion de chaîne en entier, essayons d'utiliser la méthode Integer.valueOf ().
Package com.softwaretestinghelp; /** * This class demonstrates a sample program to convert string to integer in Java * using Integer.valueOf() method * on string having decimal digits with ASCII signs i.e.plus + or minus - * @author * */ public class StringIntDemo4 { public static void main(String() args) { //Assign text '-2' i.e.value with ‘-’ sign to string variable sundayTemperature String sundayTemperature= '-2'; //Pass sundayTemperature i.e.String “-2” as a parameter to valueOf() //to convert string 'sundayTemperature' value to integer //and assign it to Integer variable sundayTemperatureValue Integer sundayTemperatureValue = Integer.valueOf(sundayTemperature); System.out.println('Sunday Temperature value --->'+ sundayTemperatureValue); //Assign text '4' to string variable mondayTemperature String mondayTemperature = '4'; //Pass mondayTemperature i.e.String “4” as a parameter to valueOf() //to convert string 'mondayTemperature ' value to integer //and assign it to Integer variable mondayTemperature Integer mondayTemperatureValue = Integer.valueOf(mondayTemperature); System.out.println('Monday Temperature value --->'+ mondayTemperatureValue); //Assign text '+6' i.e.value with ‘+’ sign to string variable //tuesdayTemperature String tuesdayTemperature = '+6'; //Pass tuesdayTemperature i.e.String “+6” as a parameter to valueOf() //to convert string 'tuesdayTemperature' value to integer //and assign it to Integer variable tuesdayTemperature Integer tuesdayTemperatureValue = Integer.valueOf(tuesdayTemperature); System.out.println('Tuesday Temperature value --->'+ tuesdayTemperatureValue); //Calculate Average value of 3 days temperature //avgTEmp = (-2+4+(+6))/3 = 8/3 = 2 Integer averageTemperatureValue = (sundayTemperatureValue+mondayTemperatureValue +tuesdayTemperatureValue)/3; //convert z to string just by using '+' operator and appending '' String averageTemperature = averageTemperatureValue+''; //Print string value of x System.out.println('Average Temperature over 3 days --->'+averageTemperature); } }
Voici la sortie du programme:
Dimanche Valeur de la température -> - 2
Lundi Valeur de température -> 4
Mardi Valeur de la température -> 6
Température moyenne sur 3 jours -> 2
Exercer: Si nous pouvons convertir les valeurs de chaîne comme indiqué ci-dessus, nous pouvons essayer des chaînes ayant un point décimal
Par exemple, au lieu de «-2», pouvons-nous essayer «-2,5»?
Veuillez essayer l'exemple de code ci-dessus avec la méthode parseInt () ou valueOf () affectant String sundayTemperature = '-2.5';
Indice: Relisez la signature de la méthode à propos des valeurs analysables.
Répondre: Si vous essayez l'exemple de programme ci-dessus avec String dimancheTempérature = '-2,5, il lancera NumberFormatException car les valeurs de l'argument String pour parseInt () et valueOf () sont ASCII plus' + 'ou moins' - 'signe et chiffres décimaux.
Donc, évidemment, «.» N’est pas valide. De plus, comme ces deux méthodes sont fournies par la classe Integer, les valeurs à virgule flottante comme «2.5» seraient des valeurs non analysables pour ces méthodes.
Ainsi, nous avons discuté des deux méthodes de la classe Integer pour convertir une chaîne en int en Java.
FAQ sur la conversion d'une chaîne en int en Java
Q # 1) Comment puis-je convertir String en int en Java?
Répondre: En Java, la conversion de chaîne en int peut être effectuée de deux manières, à savoir en utilisant les méthodes suivantes des méthodes de classe Integer:
- Integer.parseInt ()
- Integer.valueOf ()
Q # 2) Comment analysez-vous un entier?
Répondre: La classe Integer fournit des méthodes statiques qui sont utilisées pour analyser la valeur entière pour convertir String en valeur int, c'est-à-dire parseInt () et valueOf ().
Q # 3) Qu'est-ce que parseInt ()?
Répondre: parseInt () est une méthode statique fournie par la classe Integer qui est utilisée pour convertir Java String en valeur int où la valeur String est passée en argument et la valeur entière est renvoyée par la méthode.
Par exemple, int x = Integer.parseInt ('100') renvoie la valeur int 100
Q # 4) Qu'est-ce que l'analyse en Java?
Répondre: L'analyse en Java est essentiellement la conversion de la valeur d'un objet d'un type de données en un autre type de données. Par exemple, Integer.valueOf (str) convertit «str» qui est un objet de type de données String en un objet de type de données Integer.
Conclusion
Dans ce didacticiel, nous avons exploré comment convertir String en int en Java à l'aide des méthodes statiques Integer de la classe wrapper suivante:
- Integer.parseInt ()
- Integer.valueOf ()
Nous avons également couvert le cas où NumberFormatException est levé pour une chaîne numérique invalide.
Lectures complémentaires = >> 8 méthodes pour convertir Integer en Sting en Java
=> Découvrez la série de formations Java simples ici
lecture recommandée
- Tutoriel Java String with String Buffer et String Builder
- Tutoriel Java String | Méthodes de chaîne Java avec exemples
- Java Reverse String: Tutoriel avec des exemples de programmation
- Tutoriel sur la méthode Java String contains () avec des exemples
- Méthode Java String length () avec exemples
- Tutoriel JAVA pour les débutants: plus de 100 tutoriels vidéo Java pratiques
- Classe Java Integer et Java BigInteger avec exemples
- Méthode Java substring () - Tutoriel avec des exemples