V Javě při práci s řetězci dochází k situacím, kdy potřebujeme převést číslo reprezentované jako řetězec na typ celého čísla. Obvykle to děláme, protože můžeme pracovat s širokou flexibilní sadou operací nad řetězci. Metoda obecně používaná pro převod String na Integer v Javě je parseInt () z Řetězcová třída .
V tomto článku uvidíme, jak převést řetězec na int v Javě.

Program pro převod řetězce Java na int
Vezměme si rovnou příklad, abychom si zvykli na fungující metodu parseInt() :
Jáva
// 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);> >}> }> |
js settimeout
>
řetězec do data
>Výstup
20 20 -20 32 11670324>
Metoda parseInt() v Javě
Existují dvě varianty této metody:
- parseInt(String s): Tato funkce analyzuje argument řetězce jako celé číslo se znaménkem.
- parseInt(String s, int radix): Tato funkce analyzuje argument řetězce jako celé číslo se znaménkem v radixu určeném druhým argumentem.
Syntaxe parseInt
public static int parseInt(String str); public static int parseInt(String str, int radix);>
Parametry
- str: S řetězec, který je třeba převést na celé číslo.
- základ: se používá při analýze řetězce.
Typ návratu
- Obě metody převedou řetězec na jeho celočíselný ekvivalent. Jediný rozdíl je v parametru radix. První metodu lze uvažovat s radix = 10 (desítkové).
Vyhozena výjimka
- NumberFormatException je vyvoláno touto metodou, pokud nastane některá z následujících situací.
Pamatujte na určité klíčové body spojené s oběma variantami:
- Řetězec může mít hodnotu null nebo nulovou délku
- Hodnota reprezentovaná řetězcem není hodnotou typu int
- Konkrétně pro parseInt(String s, int radix) variantu funkce:
- Druhý argument radix je buď menší než Character.MIN_RADIX, nebo větší než Character.MAX_RADIX
- Žádný znak řetězce není číslice zadaného radixu, kromě toho, že prvním znakem může být znaménko mínus „-“ ('u002D') nebo znaménko plus „+“ ('u002B'), pokud je řetězec delší než délka 1
- Pokud má váš řetězec úvodní nuly, metoda parseInt() je bude ignorovat.
Případy Metoda parseInt().
Podívejme se na náhodný úryvek kódu, abychom lépe porozuměli ilustracím.
Případ 1: parseInt(20, 16)
vrátí 32 , (2)*16^1 + (0)*16^0 = 32
Případ 2: parseInt(2147483648, 10)
vyvolá výjimku NumberFormatException
Případ 3: parseInt(99, 8)
vyvolá výjimku NumberFormatException
Důvod: 9 není přijatelná číslice osmičkové číselné soustavyPřípad 4: parseInt(geeks, 28)
vyvolá výjimku NumberFormatException
Případ 5: parseInt(geeks, 29)
vrací 11670324, Důvod: Číselná soustava se základem 29 může mít číslice 0-9 následované znaky a,b,c… až s
Případ 6: parseInt(geeksforgeeks, 29)
vyvolá výjimku NumberFormatException jako Důvod: výsledek není celé číslo.
Formát čísla Výjimky metody parseInt().
Výjimky způsobené metodou parseInt() zmíněnou níže:
seznam java
Jáva
java výběr řazení
// 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);> >}> }> |
>
>
Výstup

Podobně můžeme řetězec převést na jakýkoli jiný primitivní datový typ:
- parseLong(): analyzuje řetězec na Long
- parseDouble(): analyzuje řetězec na double Pokud chceme řetězec převést na celé číslo bez použití parseInt() , můžeme použít hodnota() metoda . Má také dvě varianty podobné parseInt()
- Rozdíl mezi parseInt() a valueOf(): parseInt() analyzuje řetězec a vrátí typ primitivního celého čísla. ValueOf() však vrátí objekt typu Integer.
Poznámka: valueOf() používá parseInt() interně k převodu na celé číslo.
Další přístup pro převod řetězce na celé číslo
Kromě metody parseInt() v Javě existuje další metoda pro převod String na Integer. Níže je implementace metody valueOf(), která je
metoda valueOf().
Metoda Integer.valueOf() převede řetězec na objekt typu Integer. Pojďme to pochopit na příkladu.
Níže je uvedena implementace výše uvedené metody:
Jáva
ovládání uloženého programu
// 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);> >}> }> |
>
>Výstup
20 20 -20 32 11670324>