Als we in Java met strings werken, zijn er momenten waarop we een getal dat als string wordt weergegeven, moeten converteren naar een geheel getal. Meestal doen we dit omdat we kunnen werken met een breed, flexibel aantal bewerkingen over strings. De methode die doorgaans wordt gebruikt om String naar Integer te converteren in Java is parseInt () van de String-klasse .
In dit artikel zullen we zien hoe je een String naar int in Java kunt converteren.

Programma om Java String naar int te converteren
Laten we meteen een voorbeeld nemen om te wennen aan de werkende methode parseInt() :
Java
tekenreeks is leeg
// 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);> >}> }> |
>
data-onafhankelijkheid uitleggen
>Uitvoer
20 20 -20 32 11670324>
parseInt() Methode in Java
Er zijn twee varianten van deze methode:
- parseInt(String s): Deze functie ontleedt het stringargument als een decimaal geheel getal met teken.
- parseInt(String s, int wortel): Deze functie ontleedt het stringargument als een geheel getal met teken in de radix die is opgegeven door het tweede argument.
Syntaxis van parseInt
public static int parseInt(String str); public static int parseInt(String str, int radix);>
Parameters
- str: S tring die moet worden geconverteerd naar een geheel getal.
- radix: wordt gebruikt terwijl de string wordt geparseerd.
Retourtype
- Beide methoden converteren de tekenreeks naar het gehele equivalent ervan. Het enige verschil is dat van de parameter radix. De eerste methode kan worden overwogen met radix = 10 (decimaal).
Uitzondering gegooid
- NumberFormatException wordt door deze methode gegenereerd als een van de volgende situaties zich voordoet.
Onthoud bepaalde belangrijke punten die verband houden met beide varianten:
- De tekenreeks kan nul zijn of een lengte nul hebben
- De waarde die wordt weergegeven door de tekenreeks is geen waarde van het type int
- Specifiek voor de parseInt(String s, int radix) variant van de functie:
- De tweede argumentradix is kleiner dan Character.MIN_RADIX of groter dan Character.MAX_RADIX
- Elk teken van de string is geen cijfer van de opgegeven radix, behalve dat het eerste teken een minteken '-' ('u002D') of plusteken '+' ('u002B') kan zijn, op voorwaarde dat de string langer dan lengte 1
- Als uw String voorloopnullen heeft, negeert de methode parseInt() deze.
Gevallen van parseInt() Methode
Laten we een willekeurig codefragment nemen om de illustraties beter te begrijpen.
Geval 1: parseInt(20, 16)
retourneert 32 , (2)*16^1 + (0)*16^0 = 32
Geval 2: parseInt(2147483648, 10)
gooit een NumberFormatException
Geval 3: parseInt(99, 8)
gooit een NumberFormatException
Reden: 9 is geen geaccepteerd cijfer in het octale getalsysteemGeval 4: parseInt(nerds, 28)
gooit een NumberFormatException
Geval 5: parseInt(geeks, 29)
retourneert 11670324, Reden: Nummersysteem met grondtal 29 kan de cijfers 0-9 bevatten, gevolgd door de tekens a,b,c… tot en met s
Geval 6: parseInt(geeksforgeeks, 29)
gooit een NumberFormatException als de Reden: resultaat is geen geheel getal.
Uitzonderingen op de getalnotatie van de parseInt()-methode
Uitzonderingen veroorzaakt door de hieronder genoemde parseInt()-methode:
Java
string naar geheel getal java
mylivecricket alternatief
// 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);> >}> }> |
>
>
Uitvoer

Op dezelfde manier kunnen we de string naar elk ander primitief gegevenstype converteren:
- parseLong(): parseert de tekenreeks naar Lang
- parseDouble(): parseert de string om te verdubbelen Als we de string naar een geheel getal willen converteren zonder parseInt() te gebruiken , we kunnen gebruiken waarde van() methode . Het heeft ook twee varianten die lijken op parseInt()
- Verschil tussen parseInt() en valueOf(): parseInt() ontleedt de tekenreeks en retourneert het primitieve gehele type. valueOf() retourneert echter een geheel getal-object.
Opmerking: valueOf() gebruikt intern parseInt() om naar geheel getal te converteren.
Een andere aanpak voor het converteren van een string naar een geheel getal
Naast de parseInt()-methode in Java is er nog een andere methode voor de conversie van String naar Integer. Hieronder vindt u de implementatie van de valueOf()-methode
waardeOf() Methode
De methode Integer.valueOf() converteert een String naar een Integer-object. Laten we dit aan de hand van een voorbeeld begrijpen.
Hieronder vindt u de implementatie van de bovenstaande methode:
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);> >}> }> |
alfabet als cijfers
>
>Uitvoer
20 20 -20 32 11670324>