2010-05-18 31 views
8

我有以下號碼:1,2,3,4,10格式字符串成爲XXX1,XX10或1 ### 10 ##等

但我想打印這些數字是這樣的:

0001 
0002 
0003 
0004 
0010 

我在谷歌搜索。關鍵字是數字格式。但我什麼都沒有,我只是得到,格式小數這樣的屁股1,000,000.00。我希望你能向我推薦一個參考資料或給我一些解決這個問題的方法。

感謝

編輯, 我們可以使用NumberFormat的,或者的String.format( 「%4D」,someValue中);但它僅用於在整數之前添加0字符。如何如果我想使用字符,如x,#whitespace。 因此性格變得: xxxx1 xxx10####1###101####10###

+0

@Martijn Courteaux:如果你認爲這個問題是一個重複的(和我會,如果不是很驚訝),在註釋中這樣說,我們可以投票關閉這一個。 「deja-vu」標籤很可愛,但這不是我們在這裏做事的方式。 – 2010-05-18 17:31:34

回答

12
NumberFormat nf = new DecimalFormat("0000"); 
System.out.println(nf.format(10)); 

這版畫 「0010」。

7

看看this

你想要做什麼是「墊」您的結果。
例如String.format("%04d", myValue);

4

您可以使用String.format();

public static String addLeadingZeroes(int size, int value) 
{ 
    return String.format("%0"+size+"d", value); 
} 

所以在您的情況:

System.out.println(addLeadingZeroes(4, 75)); 

打印

0075 
+0

我認爲它會讀得更自然:'「...零(int零,int值)」'使用像:'addLeadingZeroes(4,75)' – OscarRyz 2010-05-18 16:58:05

+0

@Oscar:我不這麼認爲。因爲你可以通過'4'的大小和'75'的價值。那麼你將只有兩個零而不是四個。 – 2010-05-18 17:01:42

+0

也許,但是閱讀'addLeadingZeroes(75,4)'給我的印象是在數字4前面會有74個零。: -/Mangst答案很有意義:) – OscarRyz 2010-05-18 18:31:36

0

對於不正當的答案。

int i = 10; 
System.out.println((50000 + i + "").substring(1)); 

打印

0010