logo

Sträng till int i Java

I Java, medan vi arbetar på strängar, finns det tillfällen då vi behöver konvertera ett tal representerat som en sträng till en heltalstyp. Vi brukar göra detta eftersom vi kan arbeta med en bred flexibel uppsättning operationer över strängar. Metoden som vanligtvis används för att konvertera sträng till heltal i Java är parseInt () av Strängklass .

I den här artikeln kommer vi att se hur man konverterar en sträng till int i Java.



Java-sträng till Int

Program för att konvertera Java String till int

Låt oss ta ett exempel direkt för att vänja oss vid arbetsmetoden parseInt() :

Java



sortering tuplar python






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

>

slf4j vs log4j
>

Produktion

20 20 -20 32 11670324>

parseInt() Metod i Java

Det finns två varianter av denna metod:

  1. parseInt(String s): Denna funktion analyserar strängargumentet som ett decimalt heltal med tecken.
  2. parseInt(String s, int radix): Den här funktionen analyserar strängargumentet som ett heltal med tecken i den radix som anges av det andra argumentet.

Syntax för parseInt

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

Parametrar

  • str: S tring som måste konverteras till ett heltal.
  • radix: används medan strängen tolkas.

Returtyp

  • Båda metoderna konverterar strängen till dess heltalsekvivalent. Den enda skillnaden är parametern radix. Den första metoden kan övervägas med radix = 10 (decimal).

Undantag kastat

  • NumberFormatException kastas av den här metoden om någon av följande situationer inträffar.

Kom ihåg vissa nyckelpunkter associerade med båda varianterna:

  1. Strängen kan vara noll eller noll
  2. Värdet som representeras av strängen är inte ett värde av typen int
  3. Specifikt för varianten parseInt(String s, int radix) av funktionen:
    • Det andra argumentets radix är antingen mindre än Character.MIN_RADIX eller större än Character.MAX_RADIX
    • Alla tecken i strängen är inte en siffra i den angivna radien, förutom att det första tecknet kan vara ett minustecken '-' ('u002D') eller plustecken '+' ('u002B') förutsatt att strängen är längre än längd 1
  4. Om din sträng har inledande nollor, kommer metoden parseInt() att ignorera dem.

Fall av parseInt() metod

Låt oss ta ett slumpmässigt kodavsnitt för att förstå illustrationerna bättre.

Fall 1: parseInt(20, 16)

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

Fall 2: parseInt(2147483648, 10)

kastar ett NumberFormatException

Fall 3: parseInt(99, 8)

kastar ett NumberFormatException
Anledning: 9 är inte en accepterad siffra i det oktala talsystemet

Fall 4: parseInt(nördar, 28)

kastar ett NumberFormatException

Fall 5: parseInt(nördar, 29)

returnerar 11670324, Anledning: Talsystem med bas 29 kan ha siffrorna 0-9 följt av tecknen a,b,c... upp till s

Fall 6: parseInt(geeksforgeeks, 29)

kastar ett NumberFormatException som Anledning: resultatet är inte ett heltal.

Number Format Undantag för parseInt()-metoden

Undantag orsakade av parseInt() Metoden som nämns nedan:

Java




tostring-metoden i java

binära trädtyper
// 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å liknande sätt kan vi konvertera strängen till vilken annan primitiv datatyp som helst:

  1. parseLong(): analyserar strängen till lång
  2. parseDouble(): analyserar strängen till dubbel Om vi ​​vill konvertera strängen till ett heltal utan att använda parseInt() , vi kan använda värdet av() metod . Den har också två varianter som liknar parseInt()
  3. Skillnaden mellan parseInt() och valueOf(): parseInt() analyserar strängen och returnerar den primitiva heltalstypen. Men valueOf() returnerar ett heltalsobjekt.

Notera: valueOf() använder parseInt() internt för att konvertera till heltal.

En annan metod för att konvertera en sträng till heltal

Förutom metoden parseInt() i Java finns det en annan metod för konvertering av sträng till heltal. Nedan är implementeringen av metoden valueOf() dvs

valueOf() metod

Metoden Integer.valueOf() konverterar en sträng till ett heltalsobjekt. Låt oss förstå detta med ett exempel.

Nedan är implementeringen av ovanstående metod:

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

index för java
>

>

Produktion

20 20 -20 32 11670324>