Рядок для int в Java

Рядок для 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);> > }> }>

Вихід

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

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

Вихід

20 20 -20 32 11670324 


Кращі Статті

Категорія

Цікаві Статті