У Java під час роботи з рядками бувають випадки, коли нам потрібно перетворити число, представлене як рядок, у цілий тип. Зазвичай ми робимо це, тому що можемо працювати з широким гнучким набором операцій над рядками. Метод, який зазвичай використовується для перетворення рядка в ціле число в Java parseInt () з Клас рядків .
індійська актриса рані мукерджі
У цій статті ми побачимо, як перетворити String на int у Java.

Програма для перетворення рядка Java в int
Давайте відразу візьмемо приклад, щоб звикнути до робочого методу 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);> >}> }> |
>
>Вихід
20 20 -20 32 11670324>
Метод parseInt() у Java
Існує два варіанти цього способу:
- parseInt(рядок s): Ця функція аналізує рядковий аргумент як десяткове ціле число зі знаком.
- parseInt(String s, int radix): Ця функція аналізує рядковий аргумент як ціле число зі знаком у основі, визначеній другим аргументом.
Синтаксис parseInt
public static int parseInt(String str); public static int parseInt(String str, int radix);>
Параметри
- вул.: с string, який потрібно перетворити на ціле число.
- корінь: використовується під час аналізу рядка.
Тип повернення
- Обидва методи перетворюють рядок у його цілочисельний еквівалент. Єдина відмінність полягає в параметрі radix. Перший метод можна розглядати з основою = 10 (Decimal).
Створено виняток
- NumberFormatException викидається цим методом, якщо виникає будь-яка з наведених нижче ситуацій.
Пам’ятайте про певні ключові моменти, пов’язані з обома варіантами:
- Рядок може бути нульовим або мати нульову довжину
- Значення, представлене рядком, не є значенням типу int
- Спеціально для варіанту функції parseInt(String s, int radix):
- Основа другого аргументу менша за Character.MIN_RADIX або більша за Character.MAX_RADIX
- Будь-який символ рядка не є цифрою вказаної основи, за винятком того, що перший символ може бути знаком мінус '-' ('u002D') або знаком плюс '+' ('u002B') за умови, що рядок є довший за довжину 1
- Якщо ваш рядок має початкові нулі, метод parseInt() ігноруватиме їх.
Випадки Метод parseInt().
Давайте візьмемо випадковий фрагмент коду, щоб краще зрозуміти ілюстрації.
Випадок 1: parseInt(20, 16)
повертає 32 , (2)*16^1 + (0)*16^0 = 32
Випадок 2: parseInt(2147483648, 10)
створює виняток NumberFormatException
Випадок 3: parseInt(99, 8)
створює виняток NumberFormatException
Причина: 9 не є прийнятною цифрою вісімкової системи численняВипадок 4: parseInt(гіки, 28)
створює виняток NumberFormatException
Випадок 5: parseInt(geeks, 29)
повертає 11670324, Причина: Система числення з основою 29 може містити цифри 0-9, за якими йдуть символи a,b,c… до s
Випадок 6: parseInt(geeksforgeeks, 29)
створює виняток NumberFormatException як Причина: результат не є цілим числом.
Винятки числового формату для методу parseInt().
Винятки, спричинені згаданим нижче методом 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);> >}> }> |
списки css
>
>
Вихід

Подібним чином ми можемо перетворити рядок на будь-який інший простий тип даних:
- parseLong(): аналізує рядок на Long
- parseDouble(): аналізує рядок на подвійне значення, якщо ми хочемо перетворити рядок на ціле число без використання parseInt() , ми можемо використовувати valueOf() метод . Він також має два варіанти, подібні до parseInt()
- Різниця між parseInt() і valueOf(): parseInt() аналізує рядок і повертає примітивний цілочисельний тип. Однак valueOf() повертає цілочисельний об’єкт.
Примітка: valueOf() використовує parseInt() внутрішньо для перетворення в ціле число.
Інший підхід для перетворення рядка в ціле число
Крім методу parseInt() в Java існує ще один метод для перетворення рядка в ціле число. Нижче наведено реалізацію методу valueOf().
Метод valueOf().
Метод Integer.valueOf() перетворює рядок на об’єкт Integer. Розберемося в цьому на прикладі.
Нижче наведено реалізацію вищезазначеного методу:
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);> >}> }> |
>
порівняння java
>Вихід
20 20 -20 32 11670324>