Eilutę į int Java

Eilutę į int Java

Naudojant „Java“ eilutes, kartais mums reikia konvertuoti skaičių, pateiktą kaip eilutė, į sveikojo skaičiaus tipą. Paprastai tai darome, nes galime atlikti daugybę lanksčių operacijų per eilutes. Paprastai naudojamas būdas konvertuoti eilutę į sveikąjį skaičių Java parseInt () iš Styginių klasė .

Šiame straipsnyje pamatysime, kaip „Java“ paversti eilutę į int.

Java eilutė į Int

Programa konvertuoti Java eilutę į int

Iškart paimkime pavyzdį, kad priprastume prie veikiančio parseInt() metodo:

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);> > }> }>

Išvestis

20 20 -20 32 11670324 

parseInt() metodas Java

Yra du šio metodo variantai:

  1. parseInt(String s): Ši funkcija analizuoja eilutės argumentą kaip dešimtainį sveikąjį skaičių su ženklu.
  2. parseInt(String s, int radix): Ši funkcija išanalizuoja eilutės argumentą kaip sveikąjį skaičių, pažymėtą antrojo argumento nurodytoje raidėje.

ParseInt sintaksė

public static int   parseInt(String str);   public static int   parseInt(String str, int radix); 

Parametrai

  • g.: S tring, kurį reikia konvertuoti į sveikąjį skaičių.
  • radix: naudojamas, kol eilute analizuojama.

Grąžinimo tipas

  • Abu metodai konvertuoja eilutę į jos sveikųjų skaičių ekvivalentą. Vienintelis skirtumas yra parametro radix skirtumas. Pirmasis metodas gali būti laikomas radiksu = 10 (dešimtainis).

Išimtis išmestas

  • NumberFormatException yra išmetamas šiuo metodu, jei įvyksta bet kuri iš toliau nurodytų situacijų.

Prisiminkite tam tikrus pagrindinius dalykus, susijusius su abiem variantais:

  1. Eilutė gali būti nulinė arba nulinio ilgio
  2. Eilutės pavaizduota reikšmė nėra int tipo reikšmė
  3. Konkrečiai funkcijos parseInt(String s, int radix) variantui:
    • Antrasis argumentas yra mažesnis nei Character.MIN_RADIX arba didesnis nei Character.MAX_RADIX
    • Bet koks eilutės simbolis nėra nurodytos raidės skaitmuo, išskyrus tai, kad pirmasis simbolis gali būti minuso ženklas „-“ („u002D“) arba pliuso ženklas „+“ („u002B“), jei eilutė yra ilgesnis nei ilgis 1
  4. Jei jūsų eilutėje yra nuliai priekyje, parseInt() metodas jų nepaisys.

Atvejai parseInt() metodas

Paimkime atsitiktinį kodo fragmentą, kad geriau suprastume iliustracijas.

1 atvejis: parseInt(20, 16)

grąžina 32 , (2)*16^1 + (0)*16^0 = 32

2 atvejis: parseInt(2147483648, 10)

išmeta NumberFormatException

3 atvejis: parseInt(99, 8)

išmeta NumberFormatException
Priežastis: 9 nėra priimtinas aštuntainių skaičių sistemos skaitmuo

4 atvejis: parseInt(geeks, 28)

išmeta NumberFormatException

5 atvejis: parseInt(geeks, 29)

grąžina 11670324, Priežastis: Skaičių sistema su baze 29 gali turėti skaitmenis nuo 0 iki 9, po kurių seka simboliai a,b,c… iki s

6 atvejis: parseInt(geeksforgeeks, 29)

išmeta NumberFormatException kaip Priežastis: rezultatas nėra sveikasis skaičius.

Skaičių formatas Metodo parseInt() išimtys

Išimtys, kurias sukelia toliau nurodytas metodas parseInt():

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);> > }> }>

Išvestis

Panašiai galime konvertuoti eilutę į bet kurį kitą primityvų duomenų tipą:

  1. parseLong(): išanalizuoja eilutę į Long
  2. parseDouble(): išanalizuoja eilutę į dvigubą Jei eilutę norime konvertuoti į sveikąjį skaičių nenaudojant parseInt() , galime naudoti vertė() metodas . Jis taip pat turi du variantus, panašius į parseInt()
  3. Skirtumas tarp parseInt() ir valueOf(): parseInt() analizuoja eilutę ir grąžina primityvų sveikųjų skaičių tipą. Tačiau valueOf() grąžina sveikojo skaičiaus objektą.

Pastaba: valueOf() naudoja parseInt() viduje, kad konvertuotų į sveikąjį skaičių.

Kitas būdas konvertuoti eilutę į sveikąjį skaičių

Be „Java“ metodo „parseInt()“, yra ir kitas būdas konvertuoti eilutę į sveikąjį skaičių. Žemiau pateikiamas valueOf() metodo įgyvendinimas

valueOf() metodas

Metodas Integer.valueOf() konvertuoja eilutę į sveikojo skaičiaus objektą. Supraskime tai pavyzdžiu.

Žemiau pateikiamas pirmiau minėto metodo įgyvendinimas:

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);> > }> }>

Išvestis

20 20 -20 32 11670324