2016-07-06 78 views
1

我的Java項目的問題是,當我從一個文本字段解析字符串到很長時間,它在開始時刪除了我的零。長解析器刪除字符串開始處的零

我使用很長,因爲該文本字段是唯一標識號碼,UIN的長度是13個字符。

String uinString = tfUIN.getText() 

try 
{ 
    uin = Long.parseLong(uinString); 
} 
catch (Exception e1) 
{ 
    format = false; 
} 

如何不落後零?

我必須使用long,因爲數字檢查,該文本字段不能是文本,只是數字。

+0

爲什麼使用'long'代表一個長度不等的數字,這個ID必須有13個字符? – ifly6

+2

如果你關心字符數量,而不僅僅是數字值,爲什麼使用'long'而不是'String'? –

+1

前導0對數字沒有意義。對於一個字符串,很好,但對於一個數字,這是瘋狂的談話。 1和01之間的內在價值有什麼區別? (現在忽略八進制問題)? –

回答

1

簡單的答案是:你不能。您可以打印出longstring,並與領先的0格式化:

String.format("%013d", 1); 

或者你可以現場存儲爲string

但是,沒有辦法將其存儲爲long,並讓long存儲有關前導0的數量的信息。 A long根本沒有這種能力。

如果你改變你原來的問題陳述,其他(更好)的答案是可能的。例如,您可以使用正則表達式驗證string中只有數字,從而避免將其存儲爲long

+0

值得一提的是,您還可以驗證該字符串是否都帶有正則表達式,或者遍歷它並檢查每個字符,從而避免首先將其轉換爲long。 –

+1

@DavidConrad好點 - 編輯。 – nhouser9