Javalla, kun käytämme merkkijonoja, meidän on toisinaan muutettava merkkijonona esitetty luku kokonaislukutyypiksi. Teemme yleensä tämän, koska voimme toimia laajalla joustavalla operaatiosarjalla merkkijonojen yli. Yleensä käytetty menetelmä muuntaa merkkijono kokonaisluvuksi Javassa on parseInt () / Jousiluokka .
Tässä artikkelissa näemme, kuinka merkkijono muunnetaan int:ksi Javassa.

Ohjelma muuntaa Java-merkkijonon int
Otetaan esimerkki heti tottuaksemme toimivaan parseInt() -menetelmään:
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);> >}> }> |
>
>Lähtö
20 20 -20 32 11670324>
parseInt() -menetelmä Javassa
Tästä menetelmästä on kaksi muunnelmaa:
- parseInt(merkkijono s): Tämä funktio jäsentää merkkijonoargumentin etumerkillisenä desimaalilukuna.
- parseInt(merkkijono s, int kanta): Tämä funktio jäsentää merkkijonoargumentin etumerkillisenä kokonaislukuna toisen argumentin määrittämässä kantaluvussa.
ParseInt:n syntaksi
public static int parseInt(String str); public static int parseInt(String str, int radix);>
Parametrit
- str: S tring, joka on muutettava kokonaisluvuksi.
- kantasana: käytetään, kun merkkijonoa jäsennetään.
Palautustyyppi
- Molemmat menetelmät muuntaa merkkijonon sen kokonaislukuvastineeksi. Ainoa ero on parametrin kantaluku. Ensimmäistä menetelmää voidaan harkita kantaluvulla = 10 (desimaali).
Poikkeus heitetty
- NumberFormatException heitetään tällä menetelmällä, jos jokin seuraavista tilanteista ilmenee.
Muista tietyt molempiin muunnelmiin liittyvät keskeiset kohdat:
- Merkkijono voi olla nolla tai sen pituus
- Merkkijonon edustama arvo ei ole int-tyypin arvo
- Erityisesti funktion parseInt(String s, int kantaluku) variantille:
- Toinen argumentti kantaluku on joko pienempi kuin Character.MIN_RADIX tai suurempi kuin Character.MAX_RADIX
- Mikään merkkijonon merkki ei ole määritetyn kantaluvun numero, paitsi että ensimmäinen merkki voi olla miinusmerkki '-' ('u002D') tai plusmerkki '+' ('u002B'), jos merkkijono on pidempi kuin pituus 1
- Jos merkkijonossasi on etunollia, parseInt()-metodi jättää ne huomioimatta.
Tapaukset parseInt() -menetelmä
Otetaanpa satunnainen koodinpätkä, jotta ymmärrät kuvat paremmin.
Tapaus 1: parseInt(20, 16)
palauttaa 32 , (2)*16^1 + (0)*16^0 = 32
Tapaus 2: parseInt(2147483648, 10)
heittää NumberFormatExceptionin
Tapaus 3: parseInt(99, 8)
heittää NumberFormatExceptionin
Syy: 9 ei ole oktaalilukujärjestelmän hyväksytty numeroTapaus 4: parseInt(nörtti, 28)
heittää NumberFormatExceptionin
Tapaus 5: parseInt(geeks, 29)
palauttaa 11670324, Syy: Numerojärjestelmässä, jonka kantaluku on 29, voi olla numeroita 0-9, joita seuraa merkkejä a,b,c… s asti
Tapaus 6: parseInt(geeksforgeeks, 29)
heittää NumberFormatExceptionin muodossa Syy: tulos ei ole kokonaisluku.
Numeromuoto ParseInt()-menetelmän poikkeukset
Alla mainitut parseInt()-menetelmän aiheuttamat poikkeukset:
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);> >}> }> |
>
java päivämäärä merkkijonoon
>
Lähtö

Samoin voimme muuntaa merkkijonon mille tahansa muulle primitiiviselle tietotyypille:
- parseLong(): jäsentää merkkijonon Pitkäksi
- parseDouble(): jäsentää merkkijonon kaksinkertaiseksi Jos haluamme muuntaa merkkijonon kokonaisluvuksi käyttämättä parseInt() , voimme käyttää jonkin arvo() menetelmä . Siinä on myös kaksi muunnelmaa, jotka ovat samanlaisia kuin parseInt()
- Ero parseInt():n ja valueOf() välillä: parseInt() jäsentää merkkijonon ja palauttaa primitiivisen kokonaislukutyypin. ValueOf() palauttaa kuitenkin kokonaislukuobjektin.
Huomautus: valueOf() käyttää parseInt()-funktiota sisäisesti muuntaakseen kokonaisluvuiksi.
Toinen lähestymistapa merkkijonon muuntamiseen kokonaisluvuksi
ParseInt()-menetelmän lisäksi Javassa on toinen menetelmä merkkijonon muuntamiseksi kokonaisluvuksi. Alla on arvoOf()-menetelmän toteutus
valueOf() -menetelmä
Integer.valueOf()-menetelmä muuntaa merkkijonon kokonaislukuobjektiksi. Ymmärrämme tämä esimerkin avulla.
Alla on yllä olevan menetelmän toteutus:
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);> >}> }> |
>
>Lähtö
20 20 -20 32 11670324>