В Java, как мне разобрать строку больше, чем размер int - PullRequest
0 голосов
/ 29 февраля 2012

У меня есть строка больше чем 2 147 483 647, и мне нужно ее проанализировать. Integer.parseInt не выполняет свою работу, он выдает исключение.

Ответы [ 3 ]

8 голосов
/ 29 февраля 2012

Integer.parseInt не может выполнить работу, если вы не были счастливы потерять данные. Подумайте о том, что вы просите здесь.

Попробуйте Long.parseLong(String) или new BigInteger(String) для действительно больших целых чисел.

1 голос
/ 29 февраля 2012

Есть еще один тип, называемый Long , который может хранить числа до 2^63 - 1.Попробуйте разобрать строку, используя java.text.NumberFormat в long:

    NumberFormat format = NumberFormat.getInstance(java.util.Locale.US);

    Number number = format.parse("2,147,483,647");
    Long value = number.longValue();
0 голосов
/ 29 февраля 2012

Я предполагаю, что вы выбрали String, потому что int не может содержать ваше значение. Это не нужно. Вы можете напрямую использовать BigInteger, который может обрабатывать значительно большие значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...