how convert java string int tutorial with examples
Denne opplæringen forklarer måtene å konvertere Java String til Integer ved hjelp av Integer.parseInt og Integer.ValueOf-metoder med kodeeksempler:
Vi vil dekke følgende to helteklasse statiske metoder som brukes til å konvertere Java String til int-verdi:
- Integer.parseInt ()
- Integer.valueOf ()
=> Sjekk ALLE Java-opplæringsprogrammer her
Hva du vil lære:
- Java-streng til Int-konvertering
- Konklusjon
Java-streng til Int-konvertering
La oss se på et scenario hvor vi må utføre en slags regneoperasjon på et tall, men denne tallverdien er tilgjengelig i form av en streng. La oss si at tallet blir hentet som en tekst som kommer fra tekstfeltet på en webside eller et tekstområde på en webside.
I et slikt scenario må vi først konvertere denne strengen for å hente tall i et heltallformat.
For eksempel, la oss se på et scenario der vi vil legge til to tall. Disse verdiene blir hentet som tekst fra nettsiden din som “300” og “200”, og vi ønsker å utføre en aritmetisk operasjon på disse tallene.
La oss forstå dette ved hjelp av en eksempelkode. Her prøver vi å legge til 2 tall “300” og “200” og tildele dem til variabelen ‘c’. Når vi skriver ut ‘c’, forventer vi at utdataene på konsollen blir “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 det ovennevnte programmet er den faktiske utskriften på konsollen
‘Variabel c-verdi -> 300200’ .
klokke inn og ut programvare gratis
Hva kan være grunnen til at denne utskriften skrives ut?
Svaret på dette er at når vi gjorde a + b, bruker det '+' operatoren som sammenkobling. Så, i c = a + b; Java sammenkobler streng a og b, dvs. det er sammenkobling av to strenger '300' og '200' og utskrift '300200'.
Så dette skjer når vi prøver å legge til to strenger:
Så hva skal gjøres hvis vi vil legge til disse to tallene?
For dette må vi først konvertere disse strengene til tall og deretter utføre en aritmetisk operasjon på disse tallene. For å konvertere Java String til int, kan vi bruke følgende metoder gitt av Java Integer-klassen.
- Integer.parseInt ()
- Integer.valueOf ()
La oss se disse metodene en etter en i detalj.
# 1) Bruk av Java Integer.parseInt () -metoden
parseInt () -metoden er gitt av klassen Integer-klassen. Integer-klassen kalles Wrapper-klassen da den bryter en verdi av den primitive typen int i et objekt.
La oss ta en titt på metodesignaturen nedenfor:
public static int parseInt (String str) kaster NumberFormatException
public static Integer valueOf (String str) kaster NumberFormatException
Dette er en statisk metode gitt av Integer-klassen som returnerer et objekt av et klasse Integer som har en verdi som er spesifisert av strengobjektet som sendes til det. Her gjøres tolkningen av argumentet som ble utført som et signert desimaltall.
Dette er det samme som argumentet som ble overført til metoden parseInt (java.lang.String). Resultatet som returneres er et heltallobjekt som representerer heltallverdien spesifisert av strengen. I enkle ord returnerer valueOf () -metoden et heltall-objekt som er lik verdien av
new Integer (Integer.parseInt (str))
Her er 'str' -parameteren en streng som inneholder heltallrepresentasjonen, og metoden returnerer et heltallobjekt som holder verdien representert av 'str' i metoden.
Denne metoden gir et unntak NumberFormatException når strengen ikke inneholder et analyserbart heltall.
Integer.parseInt () Metode for streng uten tegn
La oss prøve å forstå hvordan vi bruker denne Integer.parseInt () -metoden i det samme Java-programmet som vi har sett i vårt tidligere utvalg.
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-verdi -> 300
Variabel og verdi -> 200
Variabel c-verdi -> 500
Så nå er vi i stand til å få ønsket utgang, dvs. sum av de to tallene som er representert som tekst ved å konvertere dem til int-verdi og deretter utføre en ekstra operasjon på disse tallene.
Integer.parseInt () Metode for streng med tegn
Som det fremgår av beskrivelsen av ovennevnte Integer.parseInt () -metode, er det første tegnet tillatt å være et ASCII-minustegn '-' for indikasjon av en negativ verdi eller et ASCII-pluss-tegn '+' for indikasjonen av en positiv verdi. La oss prøve det samme programmet med en negativ verdi.
La oss se prøveprogrammet med verdier og tegn som ‘+’ og ‘-‘.
Vi vil bruke de signerte strengverdiene som “+75” og “-75000” og analysere disse til heltall og deretter sammenligne for å finne et større tall mellom disse 2 tallene:
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-verdi -> 75
Variabel og verdi -> - 75000
Større antall er -> 75
Integer.parseInt () Metode for streng med ledende nuller
I noen tilfeller må vi også ha regneoperasjoner på tallene med de ledende nullene. La oss se hvordan du konverterer streng med nummer med ledende nuller til int-verdi ved hjelp av Integer.parseInt () -metoden.
For eksempel, i noen finansdomenesystemer er det et standardformat å ha et kontonummer eller et beløp med ledende nuller. Som i det følgende eksempelprogrammet beregner vi løpetiden på det faste innskuddsbeløpet ved hjelp av renten og det faste innskuddsbeløpet.
Her spesifiseres beløpet ved hjelp av ledende nuller. Disse strengverdiene med ledende nuller blir analysert til heltallverdier ved hjelp av heltall.
parseInt () -metoden som du ser i programmet nedenfor:
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 innskuddsbeløp -> 10000 INR
Du har en fast innskuddsrente -> 6% INR
Ditt faste innskuddsbeløp på forfall er -> 00010600 INR
Så i eksempelprogrammet ovenfor overfører vi ‘00010000’ til parseInt () -metoden og skriver ut verdien.
String fixedDepositAmount='00010000'; int fixedDepositAmountValue = Integer. parseInt (fixedDepositAmount); System. out .println('You have Fixed Deposit amount --->'+ fixedDepositAmountValue+' INR');
Vi vil se verdien som vises på konsollen da du har et fast innskuddsbeløp -> 10000 INR
Her, mens de konverteres til et heltall, fjernes de ledende nullene.
Deretter har vi beregnet det faste innskuddets løpetidsbeløp som ‘10600’ heltall og formatert resultatverdien ved hjelp av formatet% 08 for å hente ledende nuller.
String maturityAmount = String. format ('%08d', maturityAmountValue);
Når vi skriver ut verdien av formatert streng,
System. out .println('Your Fixed Deposit Amount on maturity is --->'+ maturityAmount+ ' INR');
Vi kan se at utskriften blir skrevet ut på konsollen som Ditt faste innskuddsbeløp på forfall er -> 00010600 INR
NumberFormatException
I beskrivelsen av Integer.parseInt () metode, har vi også sett et unntak kastet av parseInt () -metoden, dvs. NumberFormatException.
Denne metoden kaster et unntak, dvs. NumberFormatException når strengen ikke inneholder et analyserbart heltall.
Så la oss se scenariet der dette unntaket blir kastet.
La oss se følgende eksempelprogram for å forstå dette scenariet. Dette programmet ber brukeren om å angi den prosentvise poengsummen og returnerer karakteren som er mottatt. For dette analyserer den strengverdien som er angitt av brukeren, til et heltall.
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:
La oss prøve med to forskjellige inngangsverdier som er angitt av brukeren.
1. Med gyldig heltall
Vennligst skriv inn prosentandelen du har scoret: 82
Prosentverdien er -> 82
Du har bestått med utmerkelse
2. Med InValid heltallverdi
Vennligst skriv inn prosentandelen du har scoret: 85a
Unntak i tråden “main” java.lang.NumberFormatException: For input string: “85a”
på java.lang.NumberFormatException.forInputString (ukjent kilde)
på java.lang.Integer.parseInt (Ukjent kilde)
på java.lang.Integer.parseInt (Ukjent kilde)
på com.softwaretestinghelp.StringIntDemo3.main (StringIntDemo3.java:26)
Så som sett i programutgangen,
# 1) Når brukeren angir en gyldig verdi, dvs. 82 som inngang, blir utgangen som vises på konsollen som følger:
Prosentverdien er -> 82
Du har bestått med utmerkelse
# 2) Når brukeren angir ugyldig verdi, dvs. 85a som inngang, blir utdata som vises på konsollen som følger:
Vennligst skriv inn prosentandelen du har scoret: 85a
Unntak i tråden “main” java.lang.NumberFormatException: For input string: “85a”
på java.lang.NumberFormatException.forInputString (ukjent kilde)
på java.lang.Integer.parseInt (Ukjent kilde)
på java.lang.Integer.parseInt (Ukjent kilde)
på com.softwaretestinghelp.StringIntDemo3.main (StringIntDemo3.java:26)
java.lang.NumberFormatException blir kastet mens man analyserer 85a i Integer.parseInt () -metoden, da '85a' har karakter 'a' som ikke er desimal eller ASCII-tegnet '+' eller '-' dvs. '85a' er ikke det parsable heltall for Integer.parseInt () -metoden.
Så dette handlet om en av måtene å konvertere Java String til int. La oss se den andre måten Java konverterer streng til int, dvs. bruke Integer.valueOf () -metoden.
# 2) Bruke heltal. valueOf () Metode
valueOf () -metoden er også Integer class static method.
La oss ta en titt på metodesignaturen nedenfor:
public static int parseInt (String str) kaster NumberFormatException
Dette er en statisk metode gitt av Integer-klassen som returnerer et objekt til et classInteger som har en verdi som er spesifisert av strengobjektet som sendes til det. Her gjøres tolkningen av argumentet som ble utført som et signert desimaltall.
Dette er det samme som argumentet som ble overført til metoden parseInt (java.lang.String). Resultatet som returneres er et Heltall-klasseobjekt som representerer heltallverdien spesifisert av Strengen. I enkle ord returnerer metoden valueOf () et heltall-objekt som er lik verdien av ny Integer (Integer.parseInt (str))
Her er 'str' -parameteren en streng som inneholder heltallrepresentasjonen, og metoden returnerer et heltallobjekt som holder verdien representert av 'str' i metoden. Denne metoden kaster unntaket NumberFormatException når strengen ikke inneholder et analyserbart heltall.
La oss forstå hvordan du bruker denne Integer.valueOf () -metoden.
Nedenfor er et eksempelprogram. Denne prøvekoden beregner gjennomsnittstemperaturen på 3 dager i uken. Her, for å konvertere temperatur, tildeles verdiene som en strengverdi til et heltall. For denne konvertering av streng til heltall, la oss prøve å bruke 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 Temperaturverdi -> - 2
Mandag Temperaturverdi -> 4
Tirsdag Temperaturverdi -> 6
Gjennomsnittstemperatur over 3 dager -> 2
Trening: Hvis vi kan konvertere strengverdier som vist ovenfor, kan vi prøve strenger med et desimaltegn
For eksempel, i stedet for “-2”, kan vi prøve “-2,5”?
Prøv eksemplet ovenfor med kode parseInt () eller valueOf () som tilordner streng søndagstemperatur = “-2,5”;
Hint: Les metodesignaturen på nytt om de analyserbare verdiene.
Svar: Hvis du prøver eksemplet ovenfor med String søndag Temperatur = “-2,5, det vil kaste NumberFormatException som verdier for String-argumentet for parseInt () og valueOf () er ASCII pluss‘ + ’eller minus’ - ‘tegn og desimaltegn.
Så tydeligvis er ‘.’ Ugyldig. Ettersom disse to metodene er gitt av Integer-klassen, vil flytepunktverdiene som '2.5' være ikke-analyserbare verdier for disse metodene.
Dermed har vi diskutert begge metodene i Integer-klassen for å konvertere en streng til int i Java.
Vanlige spørsmål om konvertering av streng til int i Java
Q # 1) Hvordan kan jeg konvertere String til int i Java?
Svar: I Java String til int konvertering kan gjøres på to måter, dvs. ved å bruke følgende metoder for Integer klassemetoder:
- Integer.parseInt ()
- Integer.valueOf ()
Q # 2) Hvordan analyserer du et heltall?
Svar: Integer-klassen gir statiske metoder som brukes til å analysere heltallverdi for å konvertere streng til int-verdi, dvs. parseInt () og valueOf ().
Q # 3) Hva er parseInt ()?
Svar: parseInt () er en statisk metode gitt av Integer-klassen som brukes til å konvertere Java String til int-verdi der String-verdien sendes som et argument og heltall blir returnert av metoden.
For eksempel, int x = Integer.parseInt (“100”) returnerer int-verdien 100
Q # 4) Hva er parsing i Java?
Svar: Parsing i Java er i utgangspunktet konvertering av verdien til et objekt av en datatype til en annen datatype. For eksempel, Integer.valueOf (str) konverterer ‘str’ som er et objekt av String-datatype til et Integer-datatype-objekt.
Konklusjon
I denne opplæringen utforsket vi hvordan du konverterer String til int i Java ved hjelp av følgende statiske metoder for helhetsklasse Integer:
- Integer.parseInt ()
- Integer.valueOf ()
Vi dekket også saken der NumberFormatException blir kastet for et ugyldig nummerstreng.
Videre lesing = >> 8 Metoder for å konvertere Heltall til Sting i Java
=> Utforsk Simple Java Training Series her
Anbefalt lesing
- Java String with String Buffer and String Builder Tutorial
- Java String Tutorial | Java strengmetoder med eksempler
- Java omvendt streng: opplæring med programmeringseksempler
- Java String inneholder () Metodeopplæring med eksempler
- Java strenglengde () Metode med eksempler
- JAVA-opplæring for nybegynnere: 100+ praktiske Java-videoveiledninger
- Java Integer og Java BigInteger Class med eksempler
- Java substring () Metode - Veiledning med eksempler