În Java, în timp ce operăm pe șiruri, există momente când trebuie să convertim un număr reprezentat ca șir într-un tip întreg. De obicei facem acest lucru pentru că putem opera cu un set larg flexibil de operații pe șiruri. Metoda folosită în general pentru a converti String în Integer în Java este parseInt () din Clasa de șiruri .
În acest articol, vom vedea cum să convertim un String în int în Java.

Program pentru a converti șirul Java în int
Să luăm un exemplu imediat pentru a ne obișnui cu metoda de lucru 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);> >}> }> |
>
>Ieșire
20 20 -20 32 11670324>
parseInt() Metoda în Java
Există două variante ale acestei metode:
- parseInt(String s): Această funcție analizează argumentul șir ca un întreg zecimal cu semn.
- parseInt(String s, int radix): Această funcție parsează argumentul șir ca un întreg cu semn în radixul specificat de al doilea argument.
Sintaxa lui parseInt
public static int parseInt(String str); public static int parseInt(String str, int radix);>
Parametrii
- str: S tring care trebuie convertit într-un număr întreg.
- radix: este utilizat în timp ce șirul este analizat.
Tip de returnare
- Ambele metode convertesc șirul în echivalentul său întreg. Singura diferență este aceea a parametrului radix. Prima metodă poate fi considerată cu radix = 10 (Decimal).
Excepție aruncată
- NumberFormatException este aruncat prin această metodă dacă apare oricare dintre următoarele situații.
Amintiți-vă anumite puncte cheie asociate ambelor variante:
- Șirul poate fi nul sau de lungime zero
- Valoarea reprezentată de șir nu este o valoare de tip int
- În special pentru varianta parseInt(String s, int radix) a funcției:
- Al doilea argument radix este fie mai mic decât Character.MIN_RADIX sau mai mare decât Character.MAX_RADIX
- Orice caracter al șirului nu este o cifră a bazei specificate, cu excepția faptului că primul caracter poate fi semnul minus „-” („u002D”) sau semnul plus „+” („u002B”), cu condiția ca șirul să fie mai mare decât lungimea 1
- Dacă șirul tău are zerouri la început, metoda parseInt() le va ignora.
Cazuri de parseInt() Metoda
Să luăm un fragment de cod aleatoriu să înțelegem mai bine ilustrațiile.
Cazul 1: parseInt(20, 16)
returnează 32 , (2)*16^1 + (0)*16^0 = 32
Cazul 2: parseInt(2147483648, 10)
aruncă o excepție NumberFormatException
Cazul 3: parseInt(99, 8)
aruncă o excepție NumberFormatException
Motiv: 9 nu este o cifră acceptată a sistemului de numere octaleCazul 4: parseInt(tocilari, 28)
aruncă o excepție NumberFormatException
Cazul 5: parseInt(geeks, 29)
returnează 11670324, Motiv: Sistemul de numere cu baza 29 poate avea cifre de la 0 la 9 urmate de caractere a,b,c... până la s
Cazul 6: parseInt(geeksforgeeks, 29)
aruncă o excepție NumberFormatException ca Motiv: rezultatul nu este un număr întreg.
Formatul numărului Excepții ale metodei parseInt().
Excepții cauzate de metoda parseInt() menționată mai jos:
Java
variabile de tip 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);> >}> }> |
>
>
Ieșire

În mod similar, putem converti șirul în orice alt tip de date primitive:
- parseLong(): parsează șirul la Long
- parseDouble(): parsează șirul la dublu Dacă dorim să convertim șirul într-un număr întreg fără a utiliza parseInt() , putem folosi valoarea() metodă . Are și două variante similare cu parseInt()
- Diferența dintre parseInt() și valueOf(): parseInt() parsează șirul și returnează tipul întreg primitiv. Cu toate acestea, valueOf() returnează un obiect Integer.
Notă: valueOf() folosește parseInt() intern pentru a converti în întreg.
sortare de inserare în java
O altă abordare pentru conversia unui șir în număr întreg
În afară de metoda parseInt() în Java, există o altă metodă pentru conversia String-ului în Integer. Mai jos este implementarea metodei valueOf(), adică
ValueOf() Metoda
Metoda Integer.valueOf() convertește un șir într-un obiect Integer. Să înțelegem asta printr-un exemplu.
Mai jos este implementarea metodei de mai sus:
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);> >}> }> |
>
>Ieșire
20 20 -20 32 11670324>