how convert java string int tutorial with examples
Denna handledning förklarar sätten att konvertera Java String till Integer med Integer.parseInt och Integer.ValueOf-metoder med kodexempel:
Vi kommer att täcka följande två helhetsklassstatiska metoder som används för att konvertera Java String till int-värde:
- Integer.parseInt ()
- Integer.valueOf ()
=> Kontrollera ALLA Java-handledning här
Vad du kommer att lära dig:
- Java-sträng till Int-omvandling
- Slutsats
Java-sträng till Int-omvandling
Låt oss överväga ett scenario där vi måste utföra någon form av aritmetisk operation på ett tal, men detta talvärde är tillgängligt i form av en sträng. Låt oss säga att numret hämtas som en text som kommer från textfältet på en webbsida eller ett textområde på en webbsida.
I ett sådant scenario måste vi först konvertera den här strängen för att hämta siffror i ett heltalformat.
Till exempel, låt oss överväga ett scenario där vi vill lägga till två nummer. Dessa värden hämtas som text från din webbsida som '300' och '200' och vi vill utföra en aritmetisk operation på dessa siffror.
Låt oss förstå detta med hjälp av en exempelkod. Här försöker vi lägga till två nummer '300' och '200' och tilldela dem variabeln 'c'. När vi skriver ut 'c' förväntar vi oss att utmatningen på en konsol är '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 ovanstående program är den faktiska utskriften som skrivs ut på konsolen
'Variabel c-värde -> 300200' .
klocka in och ut programvara gratis
Vad kan vara orsaken till att denna utskrift skrivs ut?
Svaret på detta är, när vi gjorde a + b, använder det operatören '+' som sammankoppling. Så, in c = a + b; Java sammanfogar sträng a och b, dvs det sammanfogar två strängar '300' och '200' och skriver ut '300200'.
Så detta händer när vi försöker lägga till två strängar:
Så vad ska man göra om vi vill lägga till dessa två nummer?
För detta måste vi först konvertera dessa strängar till tal och sedan utföra en aritmetisk operation på dessa siffror. För att konvertera Java String till int kan vi använda följande metoder från Java Integer-klassen.
- Integer.parseInt ()
- Integer.valueOf ()
Låt oss se dessa metoder en efter en i detalj.
# 1) Använda Java Integer.parseInt () -metoden
parseInt () -metoden tillhandahålls av klassen Integer-klassen. Integer-klassen kallas Wrapper-klassen eftersom den slår in ett värde av den primitiva typen int i ett objekt.
Låt oss titta på metodesignaturen nedan:
public static int parseInt (String str) kastar NumberFormatException
public static Integer valueOf (String str) kastar NumberFormatException
Detta är en statisk metod som tillhandahålls av Integer-klassen som returnerar ett objekt av ett klass Integer som har ett värde som anges av strängobjektet som skickas till det. Här görs tolkningen av det skickade argumentet som ett undertecknat decimaltal.
Detta är detsamma som argumentet som skickades till metoden parseInt (java.lang.String). Resultatet som returneras är ett heltalsklassobjekt som representerar det heltalsvärde som anges av strängen. I enkla ord returnerar metoden valueOf () ett heltalobjekt lika med värdet på
nytt heltal (Integer.parseInt (str))
Här är 'str' -parametern en sträng som innehåller helhetsrepresentationen och metoden returnerar ett heltalobjekt som innehåller värdet som representeras av 'str' i metoden.
Denna metod ger ett undantag NumberFormatException när strängen inte innehåller ett tolkbart heltal.
Integer.parseInt () Metod för sträng utan tecken
Låt oss försöka förstå hur vi använder denna Integer.parseInt () -metod i samma Java-program som vi har sett i vårt tidigare exempel.
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); } }
Här är programmet Output:
Variabel x-värde -> 300
Variabel och värde -> 200
Variabel c-värde -> 500
Så nu kan vi få önskad utdata dvs summan av de två siffrorna som representeras som text genom att konvertera dessa till int-värde och sedan utföra en ytterligare operation på dessa siffror.
Integer.parseInt () Metod för strängning med tecken
Som framgår av beskrivningen av ovanstående Integer.parseInt () -metod får det första tecknet vara ett ASCII-minustecken '-' för indikering av ett negativt värde eller ett ASCII-plustecken '+' för indikering av ett positivt värde. Låt oss prova samma program med ett negativt värde.
Låt oss se exempelprogrammet med värden och tecken som '+' och '-'.
Vi kommer att använda de signerade strängvärdena som '+75' och '-75000' och analysera dem till heltal och sedan jämföra för att hitta ett större antal mellan dessa två nummer:
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); }
Här är programmet Output:
Variabel x-värde -> 75
Variabel och värde -> - 75000
Större antal är -> 75
Integer.parseInt () Metod för strängning med ledande nollor
I vissa fall måste vi också ha aritmetiska operationer på siffrorna med de ledande nollorna. Låt oss se hur man konverterar sträng med nummer med ledande nollor till int-värde med Integer.parseInt () -metoden.
Till exempel, i vissa finansdomänprogramvarusystem är det ett standardformat att ha ett kontonummer eller belopp med ledande nollor. Liksom i följande exempelprogram beräknar vi löptidsbeloppet för det fasta insättningsbeloppet med räntesatsen och det fasta insättningsbeloppet.
Här anges beloppet med hjälp av ledande nollor. Dessa strängvärden med ledande nollor analyseras till heltal med hjälp av heltal.
parseInt () -metoden enligt nedanstå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'); } }
Här är programmet Output:
Du har ett fast insättningsbelopp -> 10000 INR
Du har en fast insättningsränta -> 6% INR
Ditt fasta insättningsbelopp vid förfall är -> 00010600 INR
Så i ovanstående exempelprogram skickar vi '00010000' till metoden parseInt () och skriver ut värdet.
String fixedDepositAmount='00010000'; int fixedDepositAmountValue = Integer. parseInt (fixedDepositAmount); System. out .println('You have Fixed Deposit amount --->'+ fixedDepositAmountValue+' INR');
Vi ser värdet som visas på konsolen eftersom du har ett fast insättningsbelopp -> 10000 INR
Här, medan de konverteras till ett heltal, tas de ledande nollarna bort.
Sedan har vi beräknat det fasta insättningsförfallet som ”10600” heltal och formaterat resultatvärdet med formatet 08 för att hämta ledande nollor.
String maturityAmount = String. format ('%08d', maturityAmountValue);
När vi skriver ut värdet på formaterad sträng,
System. out .println('Your Fixed Deposit Amount on maturity is --->'+ maturityAmount+ ' INR');
Vi kan se att utskriften skrivs ut på konsolen som Ditt fasta insättningsbelopp vid förfall är -> 00010600 INR
NumberFormatException
I beskrivningen av Integer.parseInt () metod har vi också sett ett undantag kastat av parseInt () -metoden, dvs. NumberFormatException.
Denna metod ger ett undantag, dvs. NumberFormatException när strängen inte innehåller ett tolkbart heltal.
Så låt oss se scenariot där detta undantag kastas.
Låt oss se följande exempelprogram för att förstå detta scenario. Detta program uppmanar användaren att ange den procentuella poängen och returnerar det betyg som erhållits. För detta analyserar det strängvärdet som användaren har angett till ett heltal.
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 '); } } }
Här är programmet Output:
Låt oss försöka med två olika inmatningsvärden som användaren anger.
1. Med giltigt heltal
Ange den procent du har fått: 82
Procentvärde är -> 82
Du har klarat med utmärkelse
2. Med InValid-heltal
Ange den procent du har fått: 85a
Undantag i tråden “main” java.lang.NumberFormatException: För inmatningssträng: “85a”
på java.lang.NumberFormatException.forInputString (okänd källa)
på java.lang.Integer.parseInt (okänd källa)
på java.lang.Integer.parseInt (okänd källa)
på com.softwaretestinghelp.StringIntDemo3.main (StringIntDemo3.java:26)
Så som ses i programutgången,
# 1) När användaren anger ett giltigt värde, dvs. 82 som inmatning, visas utmatningen på konsolen enligt följande:
Procentvärde är -> 82
Du har klarat med utmärkelse
# 2) När användaren anger ett ogiltigt värde, dvs 85a som inmatning, visas utdata på konsolen enligt följande:
Ange den procent du har fått: 85a
Undantag i tråden “main” java.lang.NumberFormatException: För inmatningssträng: “85a”
på java.lang.NumberFormatException.forInputString (okänd källa)
på java.lang.Integer.parseInt (okänd källa)
på java.lang.Integer.parseInt (okänd källa)
på com.softwaretestinghelp.StringIntDemo3.main (StringIntDemo3.java:26)
java.lang.NumberFormatException kastas när man analyserar 85a i Integer.parseInt () -metoden eftersom '85a' har karaktär 'a' som inte är decimal eller ASCII-tecknet '+' eller '-' dvs '85a' är inte det tolkbara heltal för Integer.parseInt () -metoden.
Så det handlade om ett av sätten att konvertera Java String till int. Låt oss se det andra sättet på vilket Java omvandlar sträng till int, dvs genom att använda Integer.valueOf () -metoden.
# 2) Använda heltal. valueOf () Metod
valueOf () -metoden är också statisk metod Integer class.
Låt oss titta på metodesignaturen nedan:
public static int parseInt (String str) kastar NumberFormatException
Detta är en statisk metod som tillhandahålls av Integer-klassen som returnerar ett objekt av ett classInteger som har ett värde som anges av strängobjektet som skickas till det. Här görs tolkningen av det skickade argumentet som ett undertecknat decimaltal.
Detta är detsamma som argumentet som skickades till metoden parseInt (java.lang.String). Resultatet som returneras är ett objekt i heltalsklass som representerar det heltalsvärde som anges av strängen. I enkla ord returnerar metoden valueOf () ett heltalobjekt lika med värdet på ny Integer (Integer.parseInt (str))
Här är 'str' -parametern en sträng som innehåller helhetsrepresentationen och metoden returnerar ett heltalobjekt som innehåller värdet som representeras av 'str' i metoden. Denna metod ger undantaget NumberFormatException när strängen inte innehåller ett tolkbart heltal.
Låt oss förstå hur vi använder den här metoden Integer.valueOf ().
Nedan följer ett exempelprogram. Denna provkod beräknar medeltemperaturen på 3 dagar i veckan. För att konvertera temperatur tilldelas värdena som ett strängvärde till ett heltal. För denna konvertering av sträng till heltal, låt oss försöka använda 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); } }
Här är programmet Output:
Söndag Temperaturvärde -> - 2
Måndag Temperaturvärde -> 4
Tisdag Temperaturvärde -> 6
Medeltemperatur över 3 dagar -> 2
Övning: Om vi kan konvertera strängvärden som vi ser ovan kan vi prova strängar med en decimal
Till exempel, istället för “-2”, kan vi prova “-2,5”?
Försök ovanstående exempelkod med parseInt () eller valueOf () -metod som tilldelar String sundayTemperature = “-2,5”;
Ledtråd: Läs metodesignaturen igen om de tolkbara värdena.
Svar: Om du provar ovanstående exempelprogram med String söndagstemperatur = “-2,5, det kommer att kasta NumberFormatException som värden för argumentet String för parseInt () och valueOf () är ASCII plus‘ + ’eller minus’ - ‘tecken och decimalsiffror.
Så, uppenbarligen är '.' Ogiltigt. Eftersom dessa två metoder tillhandahålls av klassen Integer, skulle de flytande punktvärdena som '2.5' vara icke-tolkbara värden för dessa metoder.
Således har vi diskuterat båda metoderna i Integer-klassen för att konvertera en sträng till int i Java.
Vanliga frågor om konvertering av sträng till Int i Java
F # 1) Hur kan jag konvertera String till int i Java?
Svar: I Java kan sträng till int-omvandling göras på två sätt, dvs. med hjälp av följande metoder för heltalsklassmetoder:
- Integer.parseInt ()
- Integer.valueOf ()
F # 2) Hur analyserar du ett heltal?
Svar: Integer-klassen tillhandahåller statiska metoder som används för att analysera heltal för att konvertera sträng till int-värde, dvs parseInt () och valueOf ().
F # 3) Vad är parseInt ()?
Svar: parseInt () är en statisk metod som tillhandahålls av klassen Integer som används för att konvertera Java-sträng till int-värde där strängvärdet skickas som ett argument och helvärdet returneras av metoden.
Till exempel, int x = Integer.parseInt (“100”) returnerar int-värdet 100
F # 4) Vad är tolkning i Java?
Svar: Tolkning i Java är i grunden konvertering av värdet på ett objekt av en datatyp till en annan datatyp. Till exempel, Integer.valueOf (str) konverterar 'str' som är ett objekt av strängdatatyp till ett heltal-datatypobjekt.
Slutsats
I den här handledningen utforskade vi hur man konverterar String till int i Java med hjälp av följande omslagsklass Integer statiska metoder:
- Integer.parseInt ()
- Integer.valueOf ()
Vi täckte också fallet där NumberFormatException kastas för en ogiltig nummersträng.
Ytterligare läsning = >> 8 Metoder för att konvertera heltal till Sting i Java
=> Utforska The Simple Java Training Series här
Rekommenderad läsning
- Java String med String Buffer och String Builder Tutorial
- Java String Tutorial | Java-strängmetoder med exempel
- Java Reverse String: Handledning med programmeringsexempel
- Java String innehåller () Metodhandledning med exempel
- Java Stränglängd () Metod med exempel
- JAVA-handledning för nybörjare: 100+ praktiska Java-videohandledning
- Java-heltal och Java BigInteger-klass med exempel
- Java substring () Metod - Handledning med exempel