V Jave pri práci s reťazcami existujú chvíle, keď potrebujeme previesť číslo reprezentované ako reťazec na typ celého čísla. Zvyčajne to robíme, pretože môžeme pracovať so širokou flexibilnou sadou operácií nad reťazcami. Metóda všeobecne používaná na prevod reťazca na celé číslo v jazyku Java je parseInt () z Strunová trieda .
V tomto článku uvidíme, ako previesť reťazec na int v jazyku Java.

Program na konverziu reťazca Java na int
Zoberme si hneď príklad, aby sme si zvykli na fungujúcu metódu parseInt() :
Java
// Java program to demonstrate working parseInt()> // Where No NumberFormatException is Thrown> // Main class> public> class> GFG {> >// Main driver method> >public> static> void> main(String args[])> >{> >// Custom wide-varied inputs to illustrate> >// usage of valueOf() method> >int> decimalExample = Integer.parseInt(>'20'>);> >int> signedPositiveExample = Integer.parseInt(>'+20'>);> >int> signedNegativeExample = Integer.parseInt(>'-20'>);> >int> radixExample = Integer.parseInt(>'20'>,>16>);> >int> stringExample = Integer.parseInt(>'geeks'>,>29>);> >// Print commands on console> >System.out.println(decimalExample);> >System.out.println(signedPositiveExample);> >System.out.println(signedNegativeExample);> >System.out.println(radixExample);> >System.out.println(stringExample);> >}> }> |
>
>Výkon
python nový riadok
20 20 -20 32 11670324>
metóda parseInt() v jazyku Java
Existujú dva varianty tejto metódy:
- parseInt(String s): Táto funkcia analyzuje argument reťazca ako celé číslo so znamienkom.
- parseInt(String s, int radix): Táto funkcia analyzuje argument reťazca ako celé číslo so znamienkom v radixe špecifikovanom druhým argumentom.
Syntax parseInt
public static int parseInt(String str); public static int parseInt(String str, int radix);>
Parametre
- str: S reťazec, ktorý je potrebné previesť na celé číslo.
- radix: sa používa počas analýzy reťazca.
Typ návratu
- Obe metódy konvertujú reťazec na jeho celočíselný ekvivalent. Jediný rozdiel je v parametri radix. Prvú metódu možno zvážiť s radix = 10 (desatinné).
Vhodená výnimka
- NumberFormatException je vyvolaná touto metódou, ak nastane niektorá z nasledujúcich situácií.
Pamätajte na určité kľúčové body spojené s oboma variantmi:
- Reťazec môže mať hodnotu null alebo nulovú dĺžku
- Hodnota reprezentovaná reťazcom nie je hodnotou typu int
- Konkrétne pre variant funkcie parseInt(String s, int radix):
- Radix druhého argumentu je buď menší ako Character.MIN_RADIX, alebo väčší ako Character.MAX_RADIX
- Žiadny znak reťazca nie je číslicou zadaného základu, okrem toho, že prvým znakom môže byť znamienko mínus „-“ („u002D“) alebo znamienko plus „+“ („u002B“) za predpokladu, že reťazec je dlhšie ako dĺžka 1
- Ak má váš reťazec úvodné nuly, metóda parseInt() ich bude ignorovať.
Prípady metóda parseInt().
Zoberme si náhodný úryvok kódu, aby sme lepšie porozumeli ilustráciám.
Prípad 1: parseInt(20, 16)
vráti 32 , (2)*16^1 + (0)*16^0 = 32
Prípad 2: parseInt(2147483648, 10)
vyvolá výnimku NumberFormatException
Prípad 3: parseInt(99, 8)
vyvolá výnimku NumberFormatException
Dôvod: 9 nie je akceptovaná číslica v osmičkovej číselnej sústavePrípad 4: parseInt(geeks, 28)
vyvolá výnimku NumberFormatException
Prípad 5: parseInt(geeks, 29)
vráti 11670324, Dôvod: Číselný systém so základom 29 môže mať číslice 0-9, za ktorými nasledujú znaky a,b,c… až po s
Prípad 6: parseInt(geeksforgeeks, 29)
vyhodí NumberFormatException ako Dôvod: výsledok nie je celé číslo.
Formát čísla Výnimky metódy parseInt().
Výnimky spôsobené metódou parseInt() spomenutou nižšie:
Java
// Java Program to Demonstrate Working of parseInt() Method> // Where NumberFormatException is Thrown> // Main class> public> class> GFG {> >// Main driver method> >public> static> void> main(String args[])> >{> >// NumberFormatException> >String invalidArguments =>''>;> > >// invalidArguments Error empty string> >// passed> >int> emptyString> >= Integer.parseInt(invalidArguments);> > >// The Converted Intger is out of bound> >// Too large to be called Integer> >int> outOfRangeOfInteger> >= Integer.parseInt(>'geeksforgeeks'>,>29>);> > >// Domain Number System> >int> domainOfNumberSystem> >= Integer.parseInt(>'geeks'>,>28>);> >// Print commands on console> >System.out.println(emptyString);> >System.out.println(outOfRangeOfInteger);> >System.out.println(domainOfNumberSystem);> >}> }> |
>
>
Výkon

Podobne môžeme reťazec previesť na akýkoľvek iný primitívny dátový typ:
- parseLong(): analyzuje reťazec na Long
- parseDouble(): analyzuje reťazec na dvojnásobok Ak chceme reťazec previesť na celé číslo bez použitia parseInt() , môžeme použiť hodnota() metóda . Má tiež dva varianty podobné parseInt()
- Rozdiel medzi parseInt() a valueOf(): parseInt() analyzuje reťazec a vráti primitívny typ celého čísla. ValueOf() však vráti objekt typu Integer.
Poznámka: valueOf() interne používa parseInt() na konverziu na celé číslo.
Ďalší prístup na prevod reťazca na celé číslo
Okrem metódy parseInt() v Jave existuje iná metóda na konverziu reťazca na celé číslo. Nižšie je uvedená implementácia metódy valueOf(), ktorá je
metóda valueOf().
Metóda Integer.valueOf() konvertuje reťazec na objekt typu Integer. Pochopme to na príklade.
Nižšie je uvedená implementácia vyššie uvedenej metódy:
Java
int to char java
// Java Program to Demonstrate> // Working of valueOf() Method> // Main class> public> class> GFG {> >// Main driver method> >public> static> void> main(String args[])> >{> >// Custom wide-varied inputs to illustrate> >// usage of valueOf() method> >int> decimalExample = Integer.valueOf(>'20'>);> >int> signedPositiveExample = Integer.valueOf(>'+20'>);> >int> signedNegativeExample = Integer.valueOf(>'-20'>);> >int> radixExample = Integer.valueOf(>'20'>,>16>);> >int> stringExample = Integer.valueOf(>'geeks'>,>29>);> >// Print statements> >System.out.println(decimalExample);> >System.out.println(signedPositiveExample);> >System.out.println(signedNegativeExample);> >System.out.println(radixExample);> >System.out.println(stringExample);> >}> }> |
>
>Výkon
20 20 -20 32 11670324>