2010-03-13 78 views
0

幫助我如何能得到例如整數codeInt = 082從字符串代碼=「A082」 我已經試過這樣:需要與parseInt函數

int codeInt = Integer.parseInt(code.substring(1,4)); 

,我也得到codeInt = 82,離開第一0但我想要完整的代碼'082'。

我想到parseInt(String s, int radix)但我不知道如何。

任何幫助將不勝感激。
謝謝。

+0

@Mona - 正如托馬斯所說,你將不得不使用字符串,因爲082不是一個整數/八進制。 – RubyDubee 2010-03-13 15:18:50

回答

2

一個整數只是存儲一個數字。數字82和082(以及0082和000000082)完全相同(除非您以某種語言將它們放入源代碼中,那麼您將得到編譯器錯誤)。

如果你非常需要前導零,那麼你應該把它作爲一個字符串,或者適當地格式化數字以便稍後輸出。


由於具有巧妙想法,與前面的零寫入八進制常數將降溫的C設計師。好像0o123這樣的東西本來難以實現,一旦你已經有0xf00 ...

0

如果你想要0000123那麼你需要威脅變量作爲一個字符串,而不是整數。簡單地說:123等於00012301230000...1 billion zeros here...000123

但是,如果你只是想顯示一個固定長度的數字,然後使用System.out.format()

1

820820082在數學上是相同的編號,並且由位的相同序列來表示。您不能在int中編碼前導零的數量(儘管您可以使用任意格式打印它)。

還要注意082距離爪哇字面082,它爲一種(無效的)不同的八進制文字。

int i = 010; 
System.out.println(i); // this prints 8 
1

082不是整數。它是一個表示整數82的字符串。如果您需要保持前導零不變,則需要使用字符串。如果您只需要打印082,則可以使用java.text.MessageFormatSystem.out.format()或其他類似的解決方案以這種方式進行打印。

+0

+1 - 你說過哥們! – RubyDubee 2010-03-13 15:17:40