logo

Рядок для int в Java

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

індійська актриса рані мукерджі

У цій статті ми побачимо, як перетворити String на int у Java.



Рядок Java до Int

Програма для перетворення рядка 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

Існує два варіанти цього способу:

  1. parseInt(рядок s): Ця функція аналізує рядковий аргумент як десяткове ціле число зі знаком.
  2. 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 викидається цим методом, якщо виникає будь-яка з наведених нижче ситуацій.

Пам’ятайте про певні ключові моменти, пов’язані з обома варіантами:

  1. Рядок може бути нульовим або мати нульову довжину
  2. Значення, представлене рядком, не є значенням типу int
  3. Спеціально для варіанту функції parseInt(String s, int radix):
    • Основа другого аргументу менша за Character.MIN_RADIX або більша за Character.MAX_RADIX
    • Будь-який символ рядка не є цифрою вказаної основи, за винятком того, що перший символ може бути знаком мінус '-' ('u002D') або знаком плюс '+' ('u002B') за умови, що рядок є довший за довжину 1
  4. Якщо ваш рядок має початкові нулі, метод 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

>

>

Вихід

Подібним чином ми можемо перетворити рядок на будь-який інший простий тип даних:

  1. parseLong(): аналізує рядок на Long
  2. parseDouble(): аналізує рядок на подвійне значення, якщо ми хочемо перетворити рядок на ціле число без використання parseInt() , ми можемо використовувати valueOf() метод . Він також має два варіанти, подібні до parseInt()
  3. Різниця між 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>