Невозможно преобразовать строку в целое число в Java [дубликат]

Я написал функцию для преобразования строки в целое число

   if ( data != null )
   {
        int theValue = Integer.parseInt( data.trim(), 16 );
        return theValue;
   }
   else
       return null;

У меня есть строка 6042076399, и я получил ошибки:

Exception in thread "main" java.lang.NumberFormatException: For input string: "6042076399"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
    at java.lang.Integer.parseInt(Integer.java:461)

Разве это не правильный способ преобразования строки в целое число?

9
задан ROMANIA_engineer 3 April 2017 в 14:29
поделиться

5 ответов

Вот как я предпочитаю это делать:

Изменить (04.08.2015):

Как отмечено в комментарии ниже, на самом деле это лучше сделать так:

String numStr = "123";
int num = Integer.parseInt(numStr);
8
ответ дан 4 December 2019 в 09:11
поделиться

Это правильный метод, но ваше значение превышает максимальный размер int .

Максимальный размер, который может содержать int , составляет 2 31 - 1, или 2 147 483 647. Ваше значение - 6 042 076 399. Если вам нужен примитивный тип, его следует хранить как long . Максимальное значение long значительно больше - 2 63 - 1. Другой вариант может быть BigInteger .

4
ответ дан 4 December 2019 в 09:11
поделиться

Целое число не может содержать это значение. 6042076399 (413424640921 в десятичной системе) больше 2147483647, максимальное целое число.

Попробуйте использовать Long.parseLong .

8
ответ дан 4 December 2019 в 09:11
поделиться

Эта строка больше, чем Integer.MAX_VALUE. Вы не можете разобрать что-то, что выходит за пределы диапазона целых чисел. (я думаю, они доходят до 2 ^ 31-1).

2
ответ дан 4 December 2019 в 09:11
поделиться

В дополнение к тому, что ответили другие, если у вас есть строка из более чем 8 шестнадцатеричных цифр (но до 16 шестнадцатеричных цифр), вы можете преобразовать ее в длинный, используя Long .parseLong () вместо int с использованием Integer.parseInt () .

1
ответ дан 4 December 2019 в 09:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: