how convert java string int tutorial with examples
Denne vejledning forklarer måderne til at konvertere Java String til Integer ved hjælp af Integer.parseInt og Integer.ValueOf metoder med kodeeksempler:
Vi vil dække følgende to heltaleklasse statiske metoder, der bruges til at konvertere Java String til int-værdi:
- Integer.parseInt ()
- Integer.valueOf ()
=> Tjek ALLE Java-tutorials her
Hvad du lærer:
- Java-streng til Int-konvertering
- Konklusion
Java-streng til Int-konvertering
Lad os overveje et scenarie, hvor vi skal udføre en slags aritmetisk operation på et tal, men denne talværdi er tilgængelig i form af en streng. Lad os sige, at nummeret hentes som en tekst, der kommer fra tekstfeltet på en webside eller et tekstområde på en webside.
I et sådant scenario skal vi først konvertere denne streng for at hente tal i et heltalformat.
For eksempel, lad os overveje et scenario, hvor vi vil tilføje 2 tal. Disse værdier hentes som tekst fra din webside som “300” og “200”, og vi ønsker at udføre en aritmetisk operation på disse tal.
Lad os forstå dette ved hjælp af en prøvekode. Her forsøger vi at tilføje 2 tal '300' og '200' og tildele dem til variablen 'c'. Når vi udskriver 'c', forventer vi output på en konsol som '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
Men i ovenstående program er den faktiske output, der er trykt på konsollen
'Variabel c-værdi -> 300200' .
er der en app til at planlægge Instagram-indlæg
Hvad kan være årsagen til at udskrive dette output?
Svaret på dette er, at når vi lavede a + b, bruger det '+' operatoren som sammenkædning. Så i c = a + b; Java sammenkobler streng a og b, dvs. det sammenkæder to strenge '300' og '200' og udskriver '300200'.
Så dette sker, når vi forsøger at tilføje to strenge:
Så hvad skal der gøres, hvis vi vil tilføje disse to tal?
Til dette skal vi først konvertere disse strenge til tal og derefter udføre en aritmetisk operation på disse tal. For at konvertere Java String til int kan vi bruge følgende metoder leveret af Java Integer-klassen.
- Integer.parseInt ()
- Integer.valueOf ()
Lad os se disse metoder en efter en detaljeret.
# 1) Brug af Java Integer.parseInt () -metoden
parseInt () -metoden leveres af klassen Integer-klassen. Integer-klassen kaldes Wrapper-klassen, da den indpakker en værdi af den primitive type int i et objekt.
Lad os se på metodesignaturen nedenfor:
public static int parseInt (String str) kaster NumberFormatException
public static Integer valueOf (String str) kaster NumberFormatException
Dette er en statisk metode, der leveres af klassen Heltal, der returnerer et objekt fra et klassen Heltal, der har en værdi, der er angivet af strengobjektet, der sendes til det. Her udføres fortolkningen af argumentet, der er sendt, som et underskrevet decimaltal.
Dette er det samme som argumentet, der sendes til metoden parseInt (java.lang.String). Det returnerede resultat er et heltal klasseobjekt, der repræsenterer den heltalsværdi, der er angivet af strengen. I enkle ord returnerer valueOf () -metoden et heltal-objekt svarende til værdien af
nyt heltal (Integer.parseInt (str))
Her er 'str'-parameteren en streng, der indeholder heltalets repræsentation, og metoden returnerer et heltalobjekt, der holder værdien repræsenteret af' str 'i metoden.
Denne metode giver en undtagelse NumberFormatException når strengen ikke indeholder et læsbart heltal.
Integer.parseInt () Metode til streng uden tegn
Lad os prøve at forstå, hvordan vi bruger denne Integer.parseInt () -metode i det samme Java-program, som vi har set i vores tidligere prøve.
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); } }
Her er programmet Output:
Variabel x-værdi -> 300
Variabel og værdi -> 200
Variabel c-værdi -> 500
Så nu er vi i stand til at få den ønskede output, dvs. summen af de to tal, der er repræsenteret som tekst ved at konvertere dem til int-værdi og derefter udføre en yderligere operation på disse tal.
Integer.parseInt () Metode til streng med tegn
Som det ses i beskrivelsen af ovenstående Integer.parseInt () -metode, er det første tegn tilladt at være et ASCII-minustegn '-' til indikation af en negativ værdi eller et ASCII-plustegn '+' til indikation af en positiv værdi. Lad os prøve det samme program med en negativ værdi.
Lad os se prøveprogrammet med værdier og tegn som '+' og '-'.
Vi bruger de signerede strengværdier som “+75” og “-75000” og parser dem til heltal og sammenligner derefter for at finde et større tal mellem disse 2 tal:
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); }
Her er programmet Output:
Variabel x-værdi -> 75
Variabel og værdi -> - 75000
Større antal er -> 75
Integer.parseInt () Metode til streng med førende nuller
I nogle tilfælde skal vi også have aritmetiske operationer på tallene med de førende nuller. Lad os se, hvordan man konverterer streng, der har nummer med ledende nuller til int-værdi ved hjælp af Integer.parseInt () -metoden.
For eksempel, i nogle finansdomænesoftwaresystemer er det et standardformat at have et kontonummer eller et beløb med førende nuller. Som i det følgende eksempelprogram beregner vi løbetiden for det faste indskudsbeløb ved hjælp af rentesatsen og det faste indskudsbeløb.
Her specificeres beløbet ved hjælp af førende nuller. Disse strengværdier med ledende nuller parses til heltalværdier ved hjælp af heltal.
parseInt () metode som vist i nedenstående program:
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'); } }
Her er programmet Output:
Du har et fast depositum -> 10000 INR
Du har en fast rentesats -> 6% INR
Dit faste indbetalingsbeløb på løbetiden er -> 00010600 INR
Så i ovenstående eksempelprogram videregiver vi '00010000' til parseInt () -metoden og udskriver værdien.
String fixedDepositAmount='00010000'; int fixedDepositAmountValue = Integer. parseInt (fixedDepositAmount); System. out .println('You have Fixed Deposit amount --->'+ fixedDepositAmountValue+' INR');
Vi ser værdien, der vises på konsollen, da du har et fast depositum -> 10000 INR
Her, mens de konverteres til et heltal, fjernes de førende nuller.
Derefter har vi beregnet det faste depositumets løbetidsbeløb som '10600' heltal og formateret resultatværdien ved hjælp af% 08 format specifier for at hente førende nuller.
String maturityAmount = String. format ('%08d', maturityAmountValue);
Når vi udskriver værdien af formateret streng,
System. out .println('Your Fixed Deposit Amount on maturity is --->'+ maturityAmount+ ' INR');
Vi kan se, at output bliver trykt på konsol som Dit faste indbetalingsbeløb på løbetiden er -> 00010600 INR
NumberFormatException
I beskrivelsen af Integer.parseInt () metode, har vi også set en undtagelse kastet af parseInt () -metoden, dvs. NumberFormatException.
Denne metode kaster en undtagelse, dvs. NumberFormatException når strengen ikke indeholder et læsbart heltal.
Så lad os se scenariet, hvor denne undtagelse kastes.
Lad os se følgende eksempelprogram for at forstå dette scenarie. Dette program beder brugeren om at indtaste den scorede procentdel og returnere den modtagne karakter. Til dette parses den strengværdi, der er indtastet af brugeren, til en heltalværdi.
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 '); } } }
Her er programmet Output:
Lad os prøve med to forskellige inputværdier indtastet af brugeren.
1. Med gyldig heltal
Indtast venligst den procentdel, du har scoret: 82
Procentværdi er -> 82
Du har bestået med udmærkelse
2. Med InValid-heltalværdi
Indtast venligst den procentdel, du har scoret: 85a
Undtagelse i tråd “main” java.lang.NumberFormatException: For inputstreng: “85a”
på java.lang.NumberFormatException.forInputString (ukendt kilde)
på java.lang.Integer.parseInt (Ukendt kilde)
på java.lang.Integer.parseInt (Ukendt kilde)
på com.softwaretestinghelp.StringIntDemo3.main (StringIntDemo3.java:26)
Så som det ses i programoutputtet,
# 1) Når brugeren indtaster en gyldig værdi, dvs. 82 som input, vises output på konsollen som følger:
Procentværdi er -> 82
Du har bestået med udmærkelse
# 2) Når brugeren indtaster ugyldig værdi, dvs. 85a som input, vises output på konsollen som følger:
Indtast venligst den procentdel, du har scoret: 85a
Undtagelse i tråd “main” java.lang.NumberFormatException: For inputstreng: “85a”
på java.lang.NumberFormatException.forInputString (ukendt kilde)
på java.lang.Integer.parseInt (Ukendt kilde)
på java.lang.Integer.parseInt (Ukendt kilde)
på com.softwaretestinghelp.StringIntDemo3.main (StringIntDemo3.java:26)
java.lang.NumberFormatException bliver kastet under parsing af 85a i Integer.parseInt () -metoden, da '85a' har karakter 'a', som ikke er et decimaltal eller ASCII-tegn '+' eller '-' dvs. '85a' er ikke det parsable heltal til Integer.parseInt () -metoden.
Så dette handlede om en af måderne til at konvertere Java String til int. Lad os se den anden måde, hvorpå Java konverterer streng til int, dvs. ved hjælp af Integer.valueOf () -metoden.
# 2) Brug af heltal. valueOf () Metode
valueOf () -metoden er også statisk metode for heltalsklassen.
Lad os se på metodesignaturen nedenfor:
public static int parseInt (String str) kaster NumberFormatException
Dette er en statisk metode, der leveres af klassen Integer, der returnerer et objekt fra et classInteger, der har en værdi, der er angivet af strengobjektet, der sendes til det. Her udføres fortolkningen af argumentet, der er sendt, som et underskrevet decimaltal.
Dette er det samme som argumentet, der sendes til metoden parseInt (java.lang.String). Det returnerede resultat er et heltal klasseobjekt, der repræsenterer den heltalsværdi, der er angivet af strengen. I enkle ord returnerer metoden valueOf () et heltalobjekt svarende til værdien af ny Heltal (Heltal.parseInt (str))
Her er 'str'-parameteren en streng, der indeholder heltalets repræsentation, og metoden returnerer et heltalobjekt, der holder værdien repræsenteret af' str 'i metoden. Denne metode kaster undtagelsen NumberFormatException når strengen ikke indeholder et læsbart heltal.
Lad os forstå, hvordan man bruger denne Integer.valueOf () -metode.
Nedenfor er et eksempelprogram. Denne prøvekode beregner den gennemsnitlige temperatur på 3 dage i ugen. For at konvertere temperatur tildeles værdierne her som en strengværdi til en heltalværdi. For denne konvertering af streng til heltal, lad os prøve at bruge metoden 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); } }
Her er programmet Output:
Søndag Temperaturværdi -> - 2
Mandag Temperaturværdi -> 4
Tirsdag Temperaturværdi -> 6
Gennemsnitstemperatur over 3 dage -> 2
Dyrke motion: Hvis vi kan konvertere strengværdier som vist ovenfor, kan vi prøve strenge med et decimaltegn
For eksempel, i stedet for “-2”, kan vi prøve “-2,5”?
Prøv ovenstående eksempelkode med parseInt () eller valueOf () -metode, der tildeler streng søndagstemperatur = “-2,5”;
Antydning: Læs metodesignaturen igen om de parsable værdier.
Svar: Hvis du prøver ovenstående prøveprogram med String søndag Temperatur = “-2,5, det vil kaste NumberFormatException som værdier for String-argumentet for parseInt () og valueOf () er ASCII plus‘ + ’eller minus’ - ‘tegn og decimal cifre.
Så tydeligvis er '.' Ugyldig. Da disse to metoder leveres af klassen Integer, vil flydende punktværdier som '2.5' også være ikke-parsable værdier for disse metoder.
Således har vi diskuteret begge metoderne i Integer-klassen til konvertering af en streng til int i Java.
Ofte stillede spørgsmål om konvertering af streng til int i Java
Q # 1) Hvordan kan jeg konvertere streng til int i Java?
Svar: I Java String til int-konvertering kan udføres på to måder, dvs. ved hjælp af følgende metoder til heltalemetoder:
- Integer.parseInt ()
- Integer.valueOf ()
Q # 2) Hvordan analyserer du et heltal?
Svar: Heltalsklassen giver statiske metoder, der bruges til at parsere heltalværdi til at konvertere String til int-værdi, dvs. parseInt () og valueOf ().
Q # 3) Hvad er parseInt ()?
Svar: parseInt () er en statisk metode, der leveres af klassen Integer, der bruges til at konvertere Java-streng til int-værdi, hvor strengværdien videregives som et argument, og heltalets værdi returneres af metoden.
For eksempel, int x = Integer.parseInt (“100”) returnerer int-værdien 100
Spørgsmål nr. 4) Hvad er parsing i Java?
Svar: Parsing i Java er grundlæggende konvertering af værdien af et objekt af en datatype til en anden datatype. For eksempel, Integer.valueOf (str) konverterer 'str', som er et objekt af streng-datatype til et heltal-datatype-objekt.
Konklusion
I denne vejledning undersøgte vi, hvordan du konverterer String til int i Java ved hjælp af følgende statiske metoder til helhedsklasse Integer:
- Integer.parseInt ()
- Integer.valueOf ()
Vi dækkede også sagen, hvor NumberFormatException bliver kastet for et ugyldigt nummerstreng.
Yderligere læsning = >> 8 Metoder til at konvertere heltal til Sting i Java
=> Udforsk Simple Java Training Series her
Anbefalet læsning
- Java String med String Buffer og String Builder Tutorial
- Java String Tutorial | Java strengmetoder med eksempler
- Java Reverse String: Tutorial med programmeringseksempler
- Java String indeholder () Metodevejledning med eksempler
- Java strenglængde () Metode med eksempler
- JAVA-vejledning til begyndere: 100+ praktiske Java-videovejledninger
- Java-heltal og Java BigInteger-klasse med eksempler
- Java substring () Metode - Vejledning med eksempler