logo

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.

Java String la Int



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:

  1. parseInt(String s): Această funcție analizează argumentul șir ca un întreg zecimal cu semn.
  2. 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:

  1. Șirul poate fi nul sau de lungime zero
  2. Valoarea reprezentată de șir nu este o valoare de tip int
  3. Î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
  4. 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 octale

Cazul 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:

  1. parseLong(): parsează șirul la Long
  2. 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()
  3. 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>