Eilutę į int Java
Naudojant „Java“ eilutes, kartais mums reikia konvertuoti skaičių, pateiktą kaip eilutė, į sveikojo skaičiaus tipą. Paprastai tai darome, nes galime atlikti daugybę lanksčių operacijų per eilutes. Paprastai naudojamas būdas konvertuoti eilutę į sveikąjį skaičių Java parseInt () iš Styginių klasė .
Šiame straipsnyje pamatysime, kaip „Java“ paversti eilutę į int.
Programa konvertuoti Java eilutę į int
Iškart paimkime pavyzdį, kad priprastume prie veikiančio parseInt() metodo:
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);> > }> }> |
Išvestis
20 20 -20 32 11670324
parseInt() metodas Java
Yra du šio metodo variantai:
- parseInt(String s): Ši funkcija analizuoja eilutės argumentą kaip dešimtainį sveikąjį skaičių su ženklu.
- parseInt(String s, int radix): Ši funkcija išanalizuoja eilutės argumentą kaip sveikąjį skaičių, pažymėtą antrojo argumento nurodytoje raidėje.
ParseInt sintaksė
public static int parseInt(String str); public static int parseInt(String str, int radix);
Parametrai
- g.: S tring, kurį reikia konvertuoti į sveikąjį skaičių.
- radix: naudojamas, kol eilute analizuojama.
Grąžinimo tipas
- Abu metodai konvertuoja eilutę į jos sveikųjų skaičių ekvivalentą. Vienintelis skirtumas yra parametro radix skirtumas. Pirmasis metodas gali būti laikomas radiksu = 10 (dešimtainis).
Išimtis išmestas
- NumberFormatException yra išmetamas šiuo metodu, jei įvyksta bet kuri iš toliau nurodytų situacijų.
Prisiminkite tam tikrus pagrindinius dalykus, susijusius su abiem variantais:
- Eilutė gali būti nulinė arba nulinio ilgio
- Eilutės pavaizduota reikšmė nėra int tipo reikšmė
- Konkrečiai funkcijos parseInt(String s, int radix) variantui:
- Antrasis argumentas yra mažesnis nei Character.MIN_RADIX arba didesnis nei Character.MAX_RADIX
- Bet koks eilutės simbolis nėra nurodytos raidės skaitmuo, išskyrus tai, kad pirmasis simbolis gali būti minuso ženklas „-“ („u002D“) arba pliuso ženklas „+“ („u002B“), jei eilutė yra ilgesnis nei ilgis 1
- Jei jūsų eilutėje yra nuliai priekyje, parseInt() metodas jų nepaisys.
Atvejai parseInt() metodas
Paimkime atsitiktinį kodo fragmentą, kad geriau suprastume iliustracijas.
1 atvejis: parseInt(20, 16)
grąžina 32 , (2)*16^1 + (0)*16^0 = 32
2 atvejis: parseInt(2147483648, 10)
išmeta NumberFormatException
3 atvejis: parseInt(99, 8)
išmeta NumberFormatException
Priežastis: 9 nėra priimtinas aštuntainių skaičių sistemos skaitmuo4 atvejis: parseInt(geeks, 28)
išmeta NumberFormatException
5 atvejis: parseInt(geeks, 29)
grąžina 11670324, Priežastis: Skaičių sistema su baze 29 gali turėti skaitmenis nuo 0 iki 9, po kurių seka simboliai a,b,c… iki s
6 atvejis: parseInt(geeksforgeeks, 29)
išmeta NumberFormatException kaip Priežastis: rezultatas nėra sveikasis skaičius.
Skaičių formatas Metodo parseInt() išimtys
Išimtys, kurias sukelia toliau nurodytas metodas parseInt():
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);> > }> }> |
Išvestis
Panašiai galime konvertuoti eilutę į bet kurį kitą primityvų duomenų tipą:
- parseLong(): išanalizuoja eilutę į Long
- parseDouble(): išanalizuoja eilutę į dvigubą Jei eilutę norime konvertuoti į sveikąjį skaičių nenaudojant parseInt() , galime naudoti vertė() metodas . Jis taip pat turi du variantus, panašius į parseInt()
- Skirtumas tarp parseInt() ir valueOf(): parseInt() analizuoja eilutę ir grąžina primityvų sveikųjų skaičių tipą. Tačiau valueOf() grąžina sveikojo skaičiaus objektą.
Pastaba: valueOf() naudoja parseInt() viduje, kad konvertuotų į sveikąjį skaičių.
Kitas būdas konvertuoti eilutę į sveikąjį skaičių
Be „Java“ metodo „parseInt()“, yra ir kitas būdas konvertuoti eilutę į sveikąjį skaičių. Žemiau pateikiamas valueOf() metodo įgyvendinimas
valueOf() metodas
Metodas Integer.valueOf() konvertuoja eilutę į sveikojo skaičiaus objektą. Supraskime tai pavyzdžiu.
Žemiau pateikiamas pirmiau minėto metodo įgyvendinimas:
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);> > }> }> |
Išvestis
20 20 -20 32 11670324