I Java, mens vi opererer på strenger, er det tider når vi trenger å konvertere et tall representert som en streng til en heltallstype. Vi gjør vanligvis dette fordi vi kan operere med et bredt fleksibelt sett av operasjoner over strenger. Metoden som vanligvis brukes for å konvertere streng til heltall i Java er parseInt () av Strengeklasse .
I denne artikkelen vil vi se hvordan du konverterer en streng til int i Java.

Program for å konvertere Java-streng til int
La oss ta et eksempel med en gang for å bli vant til arbeidsmetoden 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);> >}> }> |
mikrolitisk kjerne
>
>Produksjon
20 20 -20 32 11670324>
parseInt()-metoden i Java
Det er to varianter av denne metoden:
- parseInt(String s): Denne funksjonen analyserer strengargumentet som et desimaltall med fortegn.
- parseInt(String s, int radix): Denne funksjonen analyserer strengargumentet som et fortegnet heltall i radiksen spesifisert av det andre argumentet.
Syntaks for parseInt
public static int parseInt(String str); public static int parseInt(String str, int radix);>
Parametere
- str: S tring som må konverteres til et heltall.
- radix: brukes mens strengen analyseres.
Returtype
- Begge metodene konverterer strengen til heltallsekvivalenten. Den eneste forskjellen er parameteren radix. Den første metoden kan vurderes med radix = 10 (desimal).
Unntak kastet
- NumberFormatException kastes av denne metoden hvis noen av følgende situasjoner oppstår.
Husk visse nøkkelpunkter knyttet til begge variantene:
- Strengen kan være null eller null-lengde
- Verdien representert av strengen er ikke en verdi av typen int
- Spesielt for parseInt(String s, int radix)-varianten av funksjonen:
- Den andre argumentradixen er enten mindre enn Character.MIN_RADIX eller større enn Character.MAX_RADIX
- Ethvert tegn i strengen er ikke et siffer i den angitte radiksen, bortsett fra at det første tegnet kan være et minustegn '-' ('u002D') eller plusstegnet '+' ('u002B') forutsatt at strengen er lengre enn lengde 1
- Hvis strengen din har innledende nuller, vil parseInt()-metoden ignorere dem.
Tilfeller av parseInt() metode
La oss ta en tilfeldig kodebit for å forstå illustrasjonene bedre.
Tilfelle 1: parseInt(20, 16)
returnerer 32 , (2)*16^1 + (0)*16^0 = 32
Tilfelle 2: parseInt(2147483648, 10)
kaster et NumberFormatException
Tilfelle 3: parseInt(99, 8)
kaster et NumberFormatException
Grunnen til: 9 er ikke et akseptert siffer i oktalt tallsystemTilfelle 4: parseInt(nerder, 28)
kaster et NumberFormatException
Tilfelle 5: parseInt(geeks, 29)
returnerer 11670324, Grunnen til: Tallsystem med grunntall 29 kan ha sifrene 0-9 etterfulgt av tegnene a,b,c... opp til s
Tilfelle 6: parseInt(geeksforgeeks, 29)
kaster et NumberFormatException som Grunnen til: resultatet er ikke et heltall.
Unntak for tallformat fra parseInt()-metoden
Unntak forårsaket av parseInt()-metoden nevnt nedenfor:
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);> >}> }> |
linux hvilken kommando
>
>
Produksjon

På samme måte kan vi konvertere strengen til en hvilken som helst annen primitiv datatype:
- parseLong(): analyserer strengen til Long
- parseDouble(): analyserer strengen til dobbel Hvis vi ønsker å konvertere strengen til et heltall uten å bruke parseInt() , Vi kan bruke verdien av() metode . Den har også to varianter som ligner parseInt()
- Forskjellen mellom parseInt() og valueOf(): parseInt() analyserer strengen og returnerer den primitive heltallstypen. Imidlertid returnerer valueOf() et heltallsobjekt.
Merk: valueOf() bruker parseInt() internt for å konvertere til heltall.
En annen metode for å konvertere en streng til heltall
Bortsett fra parseInt()-metoden i Java er det en annen metode for konvertering av streng til heltall. Nedenfor er implementeringen av valueOf() metoden som er
valueOf()-metoden
Metoden Integer.valueOf() konverterer en streng til et heltallsobjekt. La oss forstå dette med et eksempel.
Nedenfor er implementeringen av metoden ovenfor:
Java
streng sammenligning
// 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);> >}> }> |
>
>Produksjon
20 20 -20 32 11670324>