String til int i Java

String til int i Java

I Java, mens vi opererer på strenge, er der tidspunkter, hvor vi skal konvertere et tal repræsenteret som en streng til en heltalstype. Det gør vi normalt, fordi vi kan operere med et bredt fleksibelt sæt operationer over strenge. Metoden, der generelt bruges til at konvertere streng til heltal i Java, er parseInt () af Strenge klasse .

I denne artikel vil vi se, hvordan man konverterer en streng til int i Java.

Java-streng til Int

Program til at konvertere Java-streng til int

Lad os tage et eksempel med det samme for at vænne os til arbejdsmetoden 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);> > }> }>

Produktion

20 20 -20 32 11670324 

parseInt() metode i Java

Der er to varianter af denne metode:

  1. parseInt(String s): Denne funktion analyserer strengargumentet som et decimalt heltal med fortegn.
  2. parseInt(String s, int radix): Denne funktion parser strengargumentet som et heltal med fortegn i radixet angivet af det andet argument.

Syntaks for parseInt

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

Parametre

  • str: S tring, der skal konverteres til et heltal.
  • radix: bruges, mens strengen parses.

Returtype

  • Begge metoder konverterer strengen til dens heltalsækvivalent. Den eneste forskel er parameteren radix. Den første metode kan overvejes med radix = 10 (decimal).

Undtagelse kastet

  • NumberFormatException kastes af denne metode, hvis nogen af ​​følgende situationer opstår.

Husk visse nøglepunkter forbundet med begge varianter:

  1. Strengen kan være nul eller nul-længde
  2. Værdien repræsenteret af strengen er ikke en værdi af typen int
  3. Specifikt for parseInt(String s, int radix) varianten af ​​funktionen:
    • Det andet argument radix er enten mindre end Character.MIN_RADIX eller større end Character.MAX_RADIX
    • Ethvert tegn i strengen er ikke et ciffer i den angivne radix, bortset fra at det første tegn kan være et minustegn '-' ('u002D') eller plustegn '+' ('u002B'), forudsat at strengen er længere end længde 1
  4. Hvis din streng har indledende nuller, vil parseInt()-metoden ignorere dem.

Tilfælde af parseInt() metode

Lad os tage et tilfældigt kodestykke og forstå illustrationerne bedre.

Tilfælde 1: parseInt(20, 16)

returnerer 32 , (2)*16^1 + (0)*16^0 = 32

Sag 2: parseInt(2147483648, 10)

kaster en NumberFormatException

Tilfælde 3: parseInt(99, 8)

kaster en NumberFormatException
Grund: 9 er ikke et accepteret ciffer i det oktale talsystem

Case 4: parseInt(nørder, 28)

kaster en NumberFormatException

Case 5: parseInt(nørder, 29)

returnerer 11670324, Grund: Talsystem med basis 29 kan have cifrene 0-9 efterfulgt af tegnene a,b,c... op til s

Case 6: parseInt(geeksforgeeks, 29)

kaster en NumberFormatException som Grund: resultatet er ikke et heltal.

Number Format Undtagelser fra parseInt()-metoden

Undtagelser forårsaget af parseInt()-metoden nævnt 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);> > }> }>

Produktion

På samme måde kan vi konvertere strengen til enhver anden primitiv datatype:

  1. parseLong(): analyserer strengen til Long
  2. parseDouble(): parser strengen til dobbelt Hvis vi vil konvertere strengen til et heltal uden at bruge parseInt() , vi kan bruge Værdi af() metode . Den har også to varianter, der ligner parseInt()
  3. Forskellen mellem parseInt() og valueOf(): parseInt() analyserer strengen og returnerer den primitive heltalstype. Dog returnerer valueOf() et heltalsobjekt.

Bemærk: valueOf() bruger parseInt() internt til at konvertere til heltal.

En anden metode til at konvertere en streng til heltal

Udover parseInt()-metoden i Java er der en anden metode til konvertering af streng til heltal. Nedenfor er implementeringen af ​​valueOf() metode, dvs

valueOf() metode

Metoden Integer.valueOf() konverterer en streng til et heltalsobjekt. Lad os forstå dette ved et eksempel.

Nedenfor er implementeringen af ​​ovenstående metode:

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

Produktion

20 20 -20 32 11670324