String la int în Java
Î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
// 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.
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