2011-10-27 53 views
3

長話短說(在Java中):解析串地龍與領先的零

String input= "0888880747; 

long convert = Long.parseLong(input); 

轉換的值現在爲:888880747

我如何可以解析Stringlong但保留了領先零?

+5

這是沒有意義的。 longs沒有前導零,只有字符串。 –

+0

00001與1相同。前導零不起作用。 –

+0

如果您需要前導零,您需要將其存儲在字符串中,或​​者在打印時將其格式化爲字符串。 – Shaded

回答

10

你不能因爲一個long沒有前導零。長是應該存儲integers (the mathematical concept, not int),即

number line

05字符的字符串不是整數,5是。你可以做的是格式化一個長度爲5的數字,當你打印它時,前面的數字爲零。 java.util.Formatter

你確定你甚至想要一個長/整數嗎?你想用它做什麼?

+1

謝謝。我很懷疑,但我只是想確認一下。 – Tony

2

A long是一個數字值。 000001的數值與1沒有區別:它是完全相同的數字。

所以你不能找出許多前導零如何初始表示過,一旦你有一個long

如果你真的關心,那麼你不應該把輸入作爲數字類型來處理,而是存儲String本身。

0

如果你的值很長,那麼左邊的任何零(前導)都沒有數學價值,因此,當你進行解析時,它們會被剝離。

3

你得改回String當你做你的計算上的轉換,那麼:

output = String.format("%06d", convert);