how convert java string int tutorial with examples
Tento tutoriál vysvetľuje spôsoby prevodu reťazca Java na celé číslo pomocou metód Integer.parseInt a Integer.ValueOf s príkladmi kódu:
Pokryjeme nasledujúce dve statické metódy triedy Integer, ktoré sa používajú na prevod reťazca Java String na hodnotu int:
- Integer.parseInt ()
- Integer.valueOf ()
=> Skontrolujte VŠETKY návody Java tu
Čo sa dozviete:
- Konverzia reťazca Java na Int
- Záver
Konverzia reťazca Java na Int
Uvažujme o scenári, kde musíme s číslom vykonať určitý druh aritmetickej operácie, ale táto číselná hodnota je k dispozícii vo forme reťazca. Povedzme, že číslo sa načítava ako text, ktorý pochádza z textového poľa webovej stránky alebo z textovej oblasti webovej stránky.
V takomto scenári musíme najskôr tento reťazec previesť na načítanie čísel v celočíselnom formáte.
Napríklad, uvažujme o scenári, keď chceme pridať 2 čísla. Tieto hodnoty sa z vašej webovej stránky načítajú ako text „300“ a „200“ a s týmito číslami chceme vykonať aritmetickú operáciu.
Pochopme to pomocou ukážkového kódu. Tu sa snažíme pridať 2 čísla „300“ a „200“ a priradiť ich k premennej „c“. Keď tlačíme „c“, očakávame výstup na konzole ako „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
Ale vo vyššie uvedenom programe je skutočný výstup vytlačený na konzole
„Hodnota premennej c -> 300 200“ .
ako používať xor v jave
Aký by mohol byť dôvod na tlač tohto výstupu?
Odpoveď na túto otázku je, že keď sme urobili a + b, použije sa ako zreťazenie operátor „+“. Takže, v c = a + b; Java zreťazuje reťazce a a b, to znamená, že zreťazuje dva reťazce „300“ a „200“ a tlač „300200“.
Toto sa teda deje, keď sa pokúsime pridať dva reťazce:
Čo by sa malo robiť, ak chceme pridať tieto dve čísla?
Za týmto účelom musíme najskôr previesť tieto reťazce na čísla a potom s týmito číslami vykonať aritmetickú operáciu. Aby sme mohli previesť Java String na int, môžeme použiť nasledujúce metódy poskytované triedou Java Integer.
- Integer.parseInt ()
- Integer.valueOf ()
Pozrime sa podrobne na tieto metódy.
# 1) Použitie metódy Java Integer.parseInt ()
Metódu parseInt () poskytuje trieda Integer class. Trieda Integer sa nazýva trieda Wrapper, pretože v objekte zabalí hodnotu primitívneho typu int.
Pozrime sa na podpis metódy nižšie:
public static int parseInt (String str) hodí NumberFormatException
verejné statické celé číslo valueOf (String str) vyvolá NumberFormatException
Toto je statická metóda poskytovaná triedou Integer, ktorá vracia objekt triedy Integer s hodnotou, ktorá je určená objektom String, ktorý jej bol odovzdaný. Tu sa interpretácia odovzdaného argumentu vykonáva ako celé desatinné miesto so znamienkom.
Toto je rovnaké ako argument odovzdaný metóde parseInt (java.lang.String). Vráteným výsledkom je objekt triedy Integer, ktorý predstavuje celočíselnú hodnotu určenú reťazcom. Jednoduchými slovami, metóda valueOf () vráti objekt typu Integer, ktorý sa rovná hodnote
nové celé číslo (Integer.parseInt (str))
Tu je parametrom „str“ reťazec obsahujúci celočíselné zastúpenie a metóda vráti objekt typu Integer, ktorý má v metóde hodnotu predstavovanú „str“.
Táto metóda vyvolá výnimku NumberFormatException keď reťazec neobsahuje analyzovateľné celé číslo.
Integer.parseInt () metóda pre reťazec bez znakov
Pokúsme sa pochopiť, ako použiť túto metódu Integer.parseInt () v rovnakom programe Java, ktorý sme videli v našej staršej ukážke.
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); } }
Tu je výstup programu:
Hodnota premennej x -> 300
Premenná a hodnota -> 200
Hodnota premennej c -> 500
Takže teraz môžeme získať požadovaný výstup, tj súčet dvoch čísel, ktoré sú reprezentované ako text, prevedením týchto hodnôt na hodnotu int a následným vykonaním ďalšej operácie s týmito číslami.
Integer.parseInt () metóda pre reťazec so znamienkami
Ako je vidieť v popise vyššie uvedenej metódy Integer.parseInt (), prvým znakom môže byť znak mínus ASCII „-“ na označenie zápornej hodnoty alebo znak ASCII plus „+“ na označenie kladnej hodnoty hodnotu. Skúsme ten istý program so zápornou hodnotou.
Pozrime sa na ukážkový program s hodnotami a znakmi ako „+“ a „-“.
Použijeme podpísané hodnoty reťazca ako „+75“ a „-75000“ a tieto hodnoty analyzujeme na celé číslo a potom ich porovnáme, aby sme našli väčšie číslo medzi týmito dvoma číslami:
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); }
Tu je výstup programu:
Hodnota premennej x -> 75
Premenná a hodnota -> - 75 000
Väčšie číslo je -> 75
Integer.parseInt () metóda pre reťazec s úvodnými nulami
V niektorých prípadoch musíme mať tiež aritmetické operácie s číslami s úvodnými nulami. Pozrime sa, ako pomocou metódy Integer.parseInt () previesť reťazec s číslom s úvodnými nulami na hodnotu int.
Napríklad, v niektorých softvérových systémoch finančnej domény je štandardný formát mať číslo účtu alebo sumu s úvodnými nulami. Podobne ako v nasledujúcom ukážkovom programe vypočítavame splatnosť výšky fixného vkladu pomocou úrokovej sadzby a výšky fixného vkladu.
Tu je suma určená pomocou úvodných núl. Tieto hodnoty reťazca s úvodnými nulami sa pomocou Integer analyzujú na celočíselné hodnoty.
metóda parseInt (), ako je vidieť na nasledujúcom programe:
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'); } }
Tu je výstup programu:
Máte fixný vklad -> 10 000 INR
Máte fixnú úrokovú sadzbu vkladu -> 6% INR
Vaša suma fixného vkladu pri splatnosti je -> 00010600 INR
Takže vo vyššie uvedenom ukážkovom programe odovzdávame metódu „00010000“ metóde parseInt () a tlačíme hodnotu.
String fixedDepositAmount='00010000'; int fixedDepositAmountValue = Integer. parseInt (fixedDepositAmount); System. out .println('You have Fixed Deposit amount --->'+ fixedDepositAmountValue+' INR');
Hodnotu zobrazenú na konzole uvidíme, keď máte sumu fixného vkladu -> 10 000 INR
Tu sa pri prevode na celočíselnú hodnotu odstránia úvodné nuly.
Potom sme vypočítali sumu splatnosti fixného vkladu ako celočíselnú hodnotu „10600“ a výslednú hodnotu naformátovali pomocou špecifikátora formátu% 08 na získanie úvodných núl.
String maturityAmount = String. format ('%08d', maturityAmountValue);
Keď vytlačíme hodnotu naformátovaného reťazca,
System. out .println('Your Fixed Deposit Amount on maturity is --->'+ maturityAmount+ ' INR');
Vidíme výstup tlačený na konzolu ako Vaša suma fixného vkladu pri splatnosti je -> 00010600 INR
NumberFormatException
V popise Integer.parseInt () metóda, videli sme tiež výnimku vyvolanú metódou parseInt () t.j. NumberFormatException.
Táto metóda vyvolá výnimku, t.j. NumberFormatException keď reťazec neobsahuje analyzovateľné celé číslo.
Pozrime sa teda na scenár, v ktorom je táto výnimka vyvolaná.
Pozrime sa na nasledujúci ukážkový program, aby sme pochopili tento scenár. Tento program vyzve používateľa na zadanie percenta skóre a vráti prijatú známku. Za týmto účelom analyzuje hodnotu reťazca zadanú používateľom na celočíselnú hodnotu.
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 '); } } }
Tu je výstup programu:
Skúsme to s 2 rôznymi vstupnými hodnotami zadanými používateľom.
1. S platnou celočíselnou hodnotou
Zadajte percento, ktoré ste dosiahli: 82
Percentuálna hodnota je -> 82
Úspešne ste prešli
2. S celočíselnou hodnotou InValid
Zadajte percento, ktoré ste dosiahli: 85a
Výnimka vo vlákne „main“ java.lang.NumberFormatException: Pre vstupný reťazec: „85a“
na java.lang.NumberFormatException.forInputString (neznámy zdroj)
na java.lang.Integer.parseInt (neznámy zdroj)
na java.lang.Integer.parseInt (neznámy zdroj)
na adrese com.softwaretestinghelp.StringIntDemo3.main (StringIntDemo3.java:26)
Takže, ako je vidieť na výstupe programu,
# 1) Keď používateľ zadá ako vstup platnú hodnotu, t. J. 82, výstup zobrazený na konzole je nasledovný:
Percentuálna hodnota je -> 82
Úspešne ste prešli
# 2) Keď používateľ zadá neplatnú hodnotu, t. J. 85a ako vstup, výstup zobrazený na konzole je nasledovný:
Zadajte percento, ktoré ste dosiahli: 85a
Výnimka vo vlákne „main“ java.lang.NumberFormatException: Pre vstupný reťazec: „85a“
na java.lang.NumberFormatException.forInputString (neznámy zdroj)
na java.lang.Integer.parseInt (neznámy zdroj)
na java.lang.Integer.parseInt (neznámy zdroj)
na adrese com.softwaretestinghelp.StringIntDemo3.main (StringIntDemo3.java:26)
java.lang.NumberFormatException sa vyhadzuje pri analýze 85a v metóde Integer.parseInt (), pretože „85a“ má znak „a“, ktorý nie je desatinná číslica, ani znak ASCII „+“ alebo „-“, tj. „85a“ nie je analyzovateľný integer pre metódu Integer.parseInt ().
Išlo teda o jeden zo spôsobov prevodu Java String na int. Pozrime sa na ďalší spôsob, ktorým Java prevádza reťazec na int, t. J. Pomocou metódy Integer.valueOf ().
# 2) Používanie celého čísla. valueOf () metóda
metóda valueOf () je tiež statická metóda triedy Integer.
Pozrime sa na podpis metódy nižšie:
public static int parseInt (String str) hodí NumberFormatException
Toto je statická metóda poskytovaná triedou Integer, ktorá vracia objekt classInteger s hodnotou, ktorá je určená objektom String, ktorý mu bol odovzdaný. Tu sa interpretácia odovzdaného argumentu vykonáva ako celé desatinné miesto so znamienkom.
Toto je rovnaké ako argument odovzdaný metóde parseInt (java.lang.String). Vrátený výsledok je objekt triedy Integer, ktorý predstavuje celočíselnú hodnotu určenú reťazcom. Jednoduchými slovami, metóda valueOf () vráti objekt typu Integer, ktorý sa rovná hodnote Nový Celé číslo (Integer.parseInt (str))
Tu je parametrom „str“ reťazec obsahujúci celočíselné zastúpenie a metóda vráti objekt typu Integer, ktorý má v metóde hodnotu predstavovanú „str“. Táto metóda vyvolá výnimku NumberFormatException keď reťazec neobsahuje analyzovateľné celé číslo.
Poďme pochopiť, ako sa používa táto metóda Integer.valueOf ().
Ďalej je uvedený ukážkový program. Tento vzorový kód počíta priemernú teplotu 3 dni v týždni. Tu sa na prevod teploty priraďujú hodnoty ako reťazcová hodnota k celočíselnej hodnote. Pre túto konverziu reťazca na celé číslo skúsme použiť metódu 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); } }
Tu je výstup programu:
Nedeľa Teplota -> - 2
Hodnota teploty v pondelok -> 4
Utorok Hodnota teploty -> 6
Priemerná teplota za 3 dni -> 2
Cvičenie: Ak môžeme previesť reťazcové hodnoty, ako je vidieť vyššie, môžeme vyskúšať reťazce s desatinnou čiarkou
Napríklad, môžeme namiesto „-2“ vyskúšať „-2,5“?
Vyskúšajte vyššie uvedený ukážkový kód s metódou parseInt () alebo valueOf () priraďujúcou String sundayTemperature = „-2,5“;
Tip: Znovu si prečítajte podpis metódy o analyzovateľných hodnotách.
Odpoveď: Ak vyskúšate vyššie uvedený ukážkový program s reťazcom nedeľaTeplota = „-2,5, vyvolá NumberFormatException, pretože hodnoty argumentu String pre parseInt () a valueOf () sú ASCII plus znak„ + “alebo mínus„ - “a desatinné miesta.
Zjavne je teda neplatné „.“ Pretože tieto dve metódy poskytuje trieda Integer, hodnoty s pohyblivou rádovou čiarkou ako „2.5“ by boli pre tieto metódy nepochopiteľné.
Diskutujeme teda o oboch metódach triedy Integer na prevod reťazca String na int v Jave.
Časté otázky o prevode reťazca na Int v jazyku Java
Otázka č. 1) Ako môžem previesť String na int v Jave?
Odpoveď: V prostredí Java String to int sa dá konverzia uskutočniť dvoma spôsobmi, t. J. Použitím nasledujúcich metód metód triedy Integer:
- Integer.parseInt ()
- Integer.valueOf ()
Otázka č. 2) Ako analyzujete celé číslo?
Odpoveď: Trieda celé číslo poskytuje statické metódy, ktoré sa používajú na analýzu celočíselnej hodnoty na prevod reťazca na hodnotu int, t. J. ParseInt () a valueOf ().
Otázka č. 3) Čo je parseInt ()?
Odpoveď: parseInt () je statická metóda poskytovaná triedou Integer, ktorá sa používa na prevod Java String na hodnotu int, kde sa hodnota String odovzdá ako argument a metóda vráti celé číslo.
Napríklad, int x = Integer.parseInt (“100”) vráti hodnotu int 100
Otázka č. 4) Čo je analýza v Jave?
Odpoveď: Analýza v jazyku Java je v zásade prevod hodnoty objektu jedného údajového typu na iný údajový typ. Napríklad, Integer.valueOf (str) prevádza „str“, ktorý je objektom dátového typu String, na objekt dátového typu Integer.
Záver
V tomto tutoriáli sme preskúmali, ako previesť String na int v Jave pomocou nasledujúcej triedy wrapper Integer static metody:
- Integer.parseInt ()
- Integer.valueOf ()
Pokryli sme tiež prípad, keď bude NumberFormatException vyhodená pre neplatné číslo String.
Ďalšie čítanie = >> 8 Metód na prevod Integer na Sting v Jave
=> Preskúmajte tu jednoduchú sériu školení Java
Odporúčané čítanie
- Výukový program Java String s programom String Buffer a String Builder
- Výukový program pre Java String Metódy reťazca Java s príkladmi
- Reverzný reťazec Java: Výukový program s príkladmi programovania
- Java String obsahuje () Výukový program metód s príkladmi
- Metóda Java String length () s príkladmi
- Výukový program JAVA pre začiatočníkov: viac ako 100 praktických výučbových programov Java Video
- Celé číslo Java a trieda Java BigInteger s príkladmi
- Metóda Java substring () - návod s príkladmi