Parse String для long с ведущим нулем - PullRequest
4 голосов
/ 27 октября 2011

Короче говоря (на Java):

String input= "0888880747;

long convert = Long.parseLong(input);

Значение для преобразования теперь равно: 888880747

Как я могу разобрать String в long, но сохранитьведущий ноль?

Ответы [ 4 ]

11 голосов
/ 27 октября 2011

Вы не можете, потому что у лонга нет начального нуля. Лонг должен хранить целых чисел (математическая концепция, а не int) , т.е.

number line

Строка символов, таких как 05, не является целым числом, 5 является. Что вы можете сделать, это отформатировать long, который содержит 5 с ведущим нулем, когда вы его печатаете, см., Например. java.util.Formatter .

Вы уверены, что хотите получить длинное / целое число? Что ты хочешь с этим делать?

4 голосов
/ 14 ноября 2011

Вам придется изменить его обратно на String, когда вы выполните расчеты по конвертации, затем:

output = String.format("%06d", convert);
3 голосов
/ 27 октября 2011

A long - числовое значение.Числовое значение 000001 ничем не отличается от 1: это точно такое же число.

Таким образом, вы не можете узнать, сколько начальных нулей было в начальном представлении, как только вы получили1006 *.

И если вас это действительно волнует, то вам все равно не следует обрабатывать ввод как числовой тип, а вместо этого сохранять сам String.

0 голосов
/ 27 октября 2011

Если ваше значение длинное, то любые нули слева (ведущие) не имеют математического значения, поэтому они удаляются при анализе

...