Разбор числа с положительным / отрицательным префиксом из строки в Java - PullRequest
8 голосов
/ 19 января 2010

Довольно просто в java разобрать номер из String, то есть с Integer.parseInt (s), если строка в формате 'n' или '- n' , нок сожалению, он не может разобрать строку в формате '+ n' .

Так что является наиболее эффективным / элегантным способом для анализа числа из строки в Java, если он содержит положительный или отрицательный префикс: '+ n' или '- n' ?

Ответы [ 2 ]

10 голосов
/ 19 января 2010
Integer.parseInt(s.replace("+", ""));

По правде говоря, есть много ошибок, использующих Integer для такого анализа чисел, поскольку Integer имеет очень определенные границы размера и формата ("1,000,000.00"), не разбирается таким образом, но я принимаю ваш вопрос как Integer. parseInt отвечает вашим потребностям просто отлично, вам просто нужно иметь дело с + в ваших данных.

0 голосов
/ 12 февраля 2015

Только к вашему сведению, это было исправлено в Java 7.

с, Java SE8 для действительно нетерпеливых

До JDK 1.7, каков был результат следующего сегмента кода?

double x = Double.parseDouble("+1.0");

int n = Integer.parseInt("+1");

Похлопайте себя по спине, если бы вы знали ответ: +1.0 всегда было допустимым числом с плавающей точкой, но до Java 7 +1 не было допустимым целым числом. Теперь это было исправлено для всех различных методов, которые создают int, long, short, byte, и BigInteger значения из строк. Их больше, чем тебя может подумать. Помимо разбора (Int | Long | Short | Byte), есть методы декодирования, которые работают с шестнадцатеричным и восьмеричным входами, и valueOf методы, которые выдают объекты-оболочки. BigInteger(String) Конструктор также обновляется.

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