Рубрики

Строка в Integer в Java — parseInt ()

При работе со строками иногда приходится преобразовывать число, представленное в виде строки, в целочисленный тип. Метод, обычно используемый для преобразования String в Integer в Java, это parseInt ().

Как использовать метод parseInt () в Java?
Есть два варианта этого метода:

public static int parseInt(String s) throws NumberFormatException

     -  This function parses the string argument as a signed 
        decimal integer.
public static int parseInt(String s, int radix) throws NumberFormatException

     -  This function parses the string argument as a signed
        integer in the radix specified by the second argument.

Возвращает:
Проще говоря, оба метода преобразуют строку в ее целочисленный эквивалент. Единственное отличие заключается в параметре radix. Первый метод можно рассматривать как эквивалент второго метода с radix = 10 (десятичное число).

Параметры:

  • s — Строка, которая должна быть преобразована в целое число. Первый символ может также иметь знак минус «-» («/ u002D») или знак плюс «+» («/ u002B») для обозначения знака числа.
  • radix — основание, используемое во время анализа строки.
    Примечание. Этот параметр относится только ко второму варианту метода.

Исключения:
NumberFormatException вызывается этим методом, если возникает любая из следующих ситуаций:

Для обоих вариантов:

  • Строка пуста или нулевой длины
  • Значение, представленное строкой, не является значением типа int
  • Специально для варианта функции parseInt (String s, int radix):
    • Второй аргумент radix либо меньше Character.MIN_RADIX, либо больше Character.MAX_RADIX
    • Любой символ строки не является цифрой указанного радиуса, за исключением того, что первый символ может быть знаком минус '-' ('/ u002D') или знаком плюс '+' ('/ u002B') при условии, что строка длиннее 1

Примеры:

parseInt("20") returns 20
parseInt("+20") returns 20
parseInt("-20") returns -20
parseInt("20", 16) returns 16, (2)*16^1 + (0)*16^0 = 32
parseInt("2147483648", 10) throws a NumberFormatException
parseInt("99", 8) throws a NumberFormatException 
                  as 9 is not an accepted digit of octal number system
parseInt("geeks", 28) throws a NumberFormatException
parseInt("geeks", 29) returns 11670324, 
                  Number system with base 29 can have digits 0-9 
                  followed by characters a,b,c... upto s
parseInt("geeksforgeeks", 29) throws a NumberFormatException as the 
                             result is not an integer.

Нажмите кнопку «Запустить на IDE» и попробуйте преобразовать различные строки в целое число:

// Java-программа для демонстрации работающего parseInt ()

public class GFG

{

    public static void main(String args[])

    {

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

  

        // Раскомментируем следующий код для проверки

        // NumberFormatException

  

        // String invalidArguments = "";

        // int emptyString = Integer.parseInt (invalidArguments);

        // int outOfRangeOfInteger = Integer.parseInt ("geeksforgeeks", 29);

        // int domainOfNumberSystem = Integer.parseInt ("geeks", 28);

  

        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

Точно так же мы можем преобразовать строку в любые другие примитивные типы данных:

parseLong () — разбирает строку на Long

parseDouble () — разбирает строку на Double

Если мы хотим преобразовать строку в целое число без использования parseInt () , мы можем использовать метод valueOf () . Он также имеет два варианта, аналогичных parseInt ().

Разница между parseInt () и valueOf ():
parseInt () анализирует строку и возвращает примитивный целочисленный тип. Однако valueOf () возвращает объект Integer.
Примечание: valueOf () использует parseInt () для преобразования в целое число.

// Java-программа для демонстрации работы valueOf ()

public class GFG

{

    public static void main(String args[])

    {

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

  

        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

Связанная статья:
Класс Java.lang.Integer и его методы

Ссылки:
Официальная документация по Java

Эта статья предоставлена Шихар Гоэль . Если вы как GeeksforGeeks и хотели бы внести свой вклад, вы также можете написать статью с помощью contribute.geeksforgeeks.org или по почте статьи contribute@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Строка в Integer в Java — parseInt ()

0.00 (0%) 0 votes