how convert java string int tutorial with examples
Ovaj vodič objašnjava načine pretvaranja Java Stringa u Integer pomoću metoda Integer.parseInt i Integer.ValueOf s primjerima koda:
Obuhvatit ćemo sljedeće dvije statičke metode klase Integer koje se koriste za pretvaranje Java Stringa u vrijednost int:
- Integer.parseInt ()
- Integer.valueOf ()
=> Ovdje provjerite SVE Java tutorijale
Što ćete naučiti:
- Konverzija Java String u Int
- Zaključak
Konverzija Java String u Int
Razmotrimo scenarij u kojem moramo izvršiti neku vrstu aritmetičke operacije nad brojem, ali ta je vrijednost broja dostupna u obliku niza. Recimo da se broj preuzima kao tekst koji dolazi iz tekstualnog polja web stranice ili tekstnog područja web stranice.
U takvom scenariju prvo moramo pretvoriti ovaj niz da bismo dohvatili brojeve u cjelovitom formatu.
Na primjer, razmotrimo scenarij u kojem želimo dodati 2 broja. Te se vrijednosti dohvaćaju kao tekst s vaše web stranice kao '300' i '200', a mi želimo izvršiti aritmetičku operaciju nad tim brojevima.
Shvatimo to uz pomoć uzorka koda. Ovdje pokušavamo dodati 2 broja '300' i '200' i dodijeliti ih varijabli 'c'. Kada ispisujemo 'c', izlaz na konzoli očekujemo kao '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
Ali, u gore navedenom programu, stvarni izlaz ispisan na konzoli je
‘Varijabla c vrijednosti -> 300200’ .
besplatni YouTube Video Converter u mp4
Što bi mogao biti razlog za ispis ovog izlaza?
Odgovor na to je da, kada smo napravili a + b, on koristi operator + kao spajanje. Dakle, u c = a + b; Java spaja niz a i b, tj. Spaja dva niza '300' i '200' i ispisuje '300200'.
Dakle, to se događa kada pokušamo dodati dva niza:
Dakle, što bi trebalo učiniti ako želimo zbrojiti ova dva broja?
Za to prvo moramo pretvoriti ove nizove u brojeve, a zatim izvršiti aritmetičku operaciju nad tim brojevima. Da bismo pretvorili Java String u int, možemo se poslužiti sljedećim metodama koje nudi klasa Java Integer.
- Integer.parseInt ()
- Integer.valueOf ()
Pogledajmo ove metode jednu po jednu u detalje.
# 1) Korištenje metode Java Integer.parseInt ()
Metodu parseInt () pruža klasa Integer klasa. Klasa Integer naziva se klasa Wrapper jer u objekt umotava vrijednost primitivnog tipa int.
Pogledajmo dolje potpis metode:
javni statički int parseInt (String str) baca NumberFormatException
public static Integer valueOf (String str) baca NumberFormatException
Ovo je statička metoda koju pruža klasa Integer koja vraća objekt klase Integer koji ima vrijednost koja je određena objektom String koji mu je proslijeđen. Ovdje se tumačenje prosljeđenog argumenta vrši kao potpisani decimalni cijeli broj.
To je isto kao argument prosljeđen metodi parseInt (java.lang.String). Vraćeni rezultat je objekt klase Integer koji predstavlja cjelobrojnu vrijednost navedenu u Stringu. Jednostavnim riječima, metoda valueOf () vraća objekt Integer jednak vrijednosti
novi cijeli broj (Integer.parseInt (str))
Ovdje je parametar ‘str’ String koji sadrži cjelobrojni prikaz i metoda vraća objekt Integer koji sadrži vrijednost predstavljenu s ‘str’ u metodi.
Ova metoda donosi iznimku NumberFormatException kada String ne sadrži cjelinu koja se može raščlaniti.
Integer.parseInt () metoda za niz bez znakova
Pokušajmo razumjeti kako koristiti ovu metodu Integer.parseInt () u istom Java programu koji smo vidjeli u našem ranijem uzorku.
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); } }
Evo rezultata programa:
Vrijednost x varijable -> 300
Varijabla i vrijednost -> 200
Vrijednost c varijable -> 500
Dakle, sada smo u mogućnosti dobiti željeni izlaz, tj. Zbroj dva broja koja su predstavljena kao tekst pretvarajući ih u vrijednost int i zatim izvršavajući dodatnu operaciju nad tim brojevima.
Integer.parseInt () metoda za nizanje sa znakovima
Kao što se vidi iz opisa gornje metode Integer.parseInt (), prvi znak smije biti ASCII minus znak '-' za naznaku negativne vrijednosti ili ASCII plus znak '+' za naznaku pozitivnog vrijednost. Pokušajmo s istim programom s negativnom vrijednošću.
Pogledajmo primjer programa s vrijednostima i znakovima poput ‘+’ i ‘-‘.
Upotrijebit ćemo potpisane vrijednosti niza kao što su '+75' i '-75000' i raščlaniti ih na cijele brojeve, a zatim usporediti kako bismo pronašli veći broj između ova 2 broja:
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); }
Evo rezultata programa:
Vrijednost varijable x -> 75
Varijabla i vrijednost -> - 75000
Veći broj je -> 75
Integer.parseInt () Metoda za niz s vodećim nulama
U nekim slučajevima moramo izvršiti i aritmetičke operacije nad brojevima s vodećim nulama. Pogledajmo kako pretvoriti niz s brojem s početnim nulama u vrijednost int pomoću metode Integer.parseInt ().
Na primjer, u nekim softverskim sustavima domene financija standardni je format imati broj računa ili iznos s vodećim nulama. Kao, u sljedećem uzorku programa, izračunavamo iznos dospijeća iznosa fiksnog depozita koristeći kamatnu stopu i fiksni iznos depozita.
Ovdje je iznos naveden pomoću vodećih nula. Vrijednosti niza s vodećim nulama raščlanjuju se na cjelobrojne vrijednosti pomoću funkcije Integer.
metoda parseInt () kako se vidi u donjem programu:
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'); } }
Evo rezultata programa:
Imate fiksni iznos depozita -> 10000 INR
Imate fiksnu kamatnu stopu na depozit -> 6% INR
Iznos vašeg fiksnog depozita po dospijeću je -> 00010600 INR
Dakle, u gornjem uzorku programa prosljeđujemo '00010000' metodi parseInt () i ispisujemo vrijednost.
String fixedDepositAmount='00010000'; int fixedDepositAmountValue = Integer. parseInt (fixedDepositAmount); System. out .println('You have Fixed Deposit amount --->'+ fixedDepositAmountValue+' INR');
Vrijednost ćemo vidjeti na konzoli dok imate Fiksni iznos -> 10000 INR
Ovdje se prilikom pretvaranja u cjelobrojnu vrijednost vodeće nule uklanjaju.
Zatim smo izračunali fiksni iznos dospijeća depozita kao cjelobrojnu vrijednost ‘10600’ i formatirali smo vrijednost rezultata pomoću specifikatora formata% 08 za dohvaćanje vodećih nula.
String maturityAmount = String. format ('%08d', maturityAmountValue);
Kada ispisujemo vrijednost formatiranog Stringa,
System. out .println('Your Fixed Deposit Amount on maturity is --->'+ maturityAmount+ ' INR');
Izlaz se ispisuje na konzoli kao Iznos vašeg fiksnog depozita po dospijeću je -> 00010600 INR
NumberFormatException
U opisu Integer.parseInt () metodu, vidjeli smo i izuzetak koji je izbacila metoda parseInt () tj. NumberFormatException.
Ova metoda baca iznimku tj. NumberFormatException kada String ne sadrži cjelinu koja se može raščlaniti.
Pa, da vidimo scenarij u kojem je bačena ova iznimka.
Pogledajmo sljedeći primjer programa kako bismo razumjeli ovaj scenarij. Ovaj program od korisnika traži da unese postotak bodova i vraća dobivenu ocjenu. Za to analizira vrijednost Stringa koju je korisnik unio na cijelu vrijednost.
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 '); } } }
Evo rezultata programa:
Pokušajmo s 2 različite ulazne vrijednosti koje je korisnik unio.
1. S važećom cijelom brojem vrijednosti
Unesite postotak koji ste postigli: 82
Postotna vrijednost je -> 82
Prošli ste s razlikovanjem
2. S cijelom vrijednošću InValid
Unesite postotak koji ste postigli: 85a
Iznimka u niti 'main' java.lang.NumberFormatException: Za ulazni niz: '85a'
na java.lang.NumberFormatException.forInputString (nepoznati izvor)
na java.lang.Integer.parseInt (nepoznati izvor)
na java.lang.Integer.parseInt (nepoznati izvor)
na com.softwaretestinghelp.StringIntDemo3.main (StringIntDemo3.java:26)
Dakle, kao što se vidi u izlazu programa,
# 1) Kada korisnik unese valjanu vrijednost, tj. 82 kao ulaz, izlaz koji se prikazuje na konzoli je sljedeći:
Postotna vrijednost je -> 82
Prošli ste s razlikovanjem
# 2) Kada korisnik unese nevaljanu vrijednost, tj. 85a kao ulaz, izlaz koji se prikazuje na konzoli je sljedeći:
Unesite postotak koji ste postigli: 85a
Iznimka u niti 'main' java.lang.NumberFormatException: Za ulazni niz: '85a'
na java.lang.NumberFormatException.forInputString (nepoznati izvor)
na java.lang.Integer.parseInt (nepoznati izvor)
na java.lang.Integer.parseInt (nepoznati izvor)
na com.softwaretestinghelp.StringIntDemo3.main (StringIntDemo3.java:26)
java.lang.NumberFormatException se baca tijekom raščlanjivanja 85a u metodi Integer.parseInt () jer '85a' ima znak 'a' koji nije decimalna znamenka niti ASCII znak '+' ili '-' tj. '85a' nije rastavljiv cijeli broj za metodu Integer.parseInt ().
Dakle, riječ je o jednom od načina pretvaranja Java Stringa u int. Pogledajmo drugi način na koji Java pretvara String u int, tj. Koristeći metodu Integer.valueOf ().
# 2) Korištenje cijelog broja. valueOf () metoda
metoda valueOf () je također statička metoda klase Integer.
Pogledajmo dolje potpis metode:
javni statički int parseInt (String str) baca NumberFormatException
Ovo je statična metoda koju pruža klasa Integer koja vraća objekt classInteger koji ima vrijednost koja je navedena objektom String koji mu je proslijeđen. Ovdje se tumačenje prosljeđenog argumenta vrši kao potpisani decimalni cijeli broj.
To je isto kao argument prosljeđen metodi parseInt (java.lang.String). Vraćeni rezultat je objekt klase Integer koji predstavlja cjelobrojnu vrijednost navedenu u Stringu. Jednostavnim riječima, metoda valueOf () vraća objekt Integer jednak vrijednosti novi Cijeli broj (Integer.parseInt (str))
Ovdje je parametar ‘str’ String koji sadrži cjelobrojni prikaz i metoda vraća objekt Integer koji sadrži vrijednost predstavljenu s ‘str’ u metodi. Ova metoda baca iznimku NumberFormatException kada String ne sadrži cjelinu koja se može raščlaniti.
Razumijemo kako koristiti ovu metodu Integer.valueOf ().
Dolje je dat primjer programa. Ovaj uzorak koda izračunava prosječnu temperaturu od 3 dana u tjednu. Ovdje se za pretvaranje temperature vrijednosti dodjeljuju kao vrijednost niza u cijelu vrijednost. Za ovu konverziju niza u cjelobrojni broj, pokušajmo koristiti metodu 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); } }
Evo rezultata programa:
Nedjelja Vrijednost temperature -> - 2
Ponedjeljak Vrijednost temperature -> 4
Utorak Vrijednost temperature -> 6
Prosječna temperatura tijekom 3 dana -> 2
Vježba: Ako možemo pretvoriti vrijednosti niza kao što je gore prikazano, možemo pokušati sa nizovima decimalne točke
Na primjer, umjesto '-2', možemo li probati '-2.5'?
Isprobajte gornji uzorak koda metodom parseInt () ili valueOf () koja dodjeljuje String sundayTemperature = “-2,5”;
Savjet: Ponovno pročitajte potpis metode o vrijednostima koje se mogu raščlaniti.
Odgovor: Ako isprobate gornji uzorak programa sa Stringom nedjeljaTemperatura = “-2,5, izbacit će NumberFormatException jer su vrijednosti argumenta String za parseInt () i valueOf () ASCII plus‘ + ’ili minus’ - ‘znak i decimalne znamenke.
Dakle, očito ‘.’ Nije valjano. Također, kako ove dvije metode pruža klasa Integer, vrijednosti s pomičnim zarezom poput '2.5' za ove metode ne bi mogle biti raščlanjive.
Dakle, raspravljamo o obje metode klase Integer za pretvaranje Stringa u int u Javi.
Česta pitanja o pretvaranju niza u Int u Javi
P # 1) Kako mogu pretvoriti String u int na Javi?
Odgovor: U Java Stringu u pretvorbu int može se izvršiti na dva načina, tj. Koristeći sljedeće metode metoda klase Integer:
- Integer.parseInt ()
- Integer.valueOf ()
P # 2) Kako se raščlanjuje cijeli broj?
Odgovor: Klasa Integer pruža statičke metode koje se koriste za raščlanjivanje cijele vrijednosti za pretvaranje Stringa u vrijednost int, tj. ParseInt () i valueOf ().
P # 3) Što je parseInt ()?
Odgovor: parseInt () je statička metoda koju pruža klasa Integer koja se koristi za pretvaranje Java Stringa u int vrijednost gdje se vrijednost String predaje kao argument, a metoda vraća cjelobrojnu vrijednost.
Na primjer, int x = Integer.parseInt (“100”) vraća vrijednost int 100
P # 4) Što je raščlanjivanje u Javi?
Odgovor: Raščlanjivanje u Javi u osnovi je pretvorba vrijednosti objekta jednog tipa podataka u drugi tip podataka. Na primjer, Integer.valueOf (str) pretvara 'str' koji je objekt tipa podataka String u objekt vrste podataka Integer.
Zaključak
U ovom uputstvu istražili smo kako pretvoriti String u int u Javi koristeći sljedeće statičke metode klase omotača Integer:
- Integer.parseInt ()
- Integer.valueOf ()
Također smo pokrili slučaj kada se NumberFormatException baci zbog nevaljanog niza broja.
Daljnje čitanje = >> 8 metoda za pretvaranje cijelog broja u Sting u Javi
=> Ovdje istražite jednostavnu seriju Java treninga
Preporučena literatura
- Java string sa String Buffer-om i String Builder Tutorial
- Java String Vodič | Metode Java niza s primjerima
- Java Obrnuti niz: Vodič s primjerima programiranja
- Java String sadrži () Vodič za metode s primjerima
- Duljina Java niza () Metoda s primjerima
- JAVA Tutorial za početnike: 100+ praktičnih Java Video tutorijala
- Java Integer i Java BigInteger klasa s primjerima
- Metoda Java podniz () - Vodič s primjerima