2011-06-19 103 views

回答

18

看看PadLeft

例如:

int i = 40; 

string s = i.ToString().PadLeft(3, '0'); 

小號==「040」

+0

完美!謝謝! – pearcewg

+0

什麼是內存影響?它會導致比使用其他方法更高的內存負載嗎? –

+0

不錯,但在我看來,下面的vcsjones解決方案更好。爲此創建的字符串至少少一個實例。 – ingo

-3

每次我需要追加的東西到字符串的開頭匹配這樣我已經使用了一段時間循環的標準時間。像這樣:

while (myString.length < 5) myString = "0" + myString; 

雖然可能有一個string.format的方式來做到這一點,這對我來說以前工作得很好。

+3

使用內置功能更好,更清晰。 – svick

39

做到這一點,最簡單的方法是使用.NET的內置功能,這:

var r = 10; 
var p = r.ToString("000"); 

無需循環或填充。

+0

不知道這種方法..加上一個:) – ingo

+0

對於負數,這將變成4個字符。例如,-10變爲「-010」 – VoteCoffee

4

我記得看到這樣的代碼與零鍵盤的數字...

int[] nums = new int[] { 1, 10, 116 }; 

foreach (int i in nums) 
{ 
    Console.WriteLine("{0:000}", i); 
} 

輸出:

001 
010 
116 
+1

只有在您想將它們輸出到控制檯時纔有效。如果你想和他們一起做別的什麼呢? – svick

+3

@svick它也可以和string.Format一起使用 – ingo

10

另一種選擇是:

i.ToString("d3") 
+0

這對我不起作用。 – Brady

+0

@布拉迪你能更具體嗎?這對我來說可以。 – svick

+0

當然。只要編譯器擊中那條線,值就不會改變,它就會越過它,就好像它不在那裏一樣。 '昏暗thisDate作爲Date' '昏暗thisMonth的作爲Integer' 'thisDate = Date.Today' 'thisMonth的=月(thisDate)'' thisMonth.ToString( 「00」)'= 「2」 爲我而不是「02」。 – Brady

相關問題