2013-03-14 84 views
4

我的應用程序,由於某種原因,我有5位數字的兩個數字。從字符串值的數字增量

下面的代碼給你一個簡單的想法。

string s = "00001"; // Initially stored somewhere. 
//Operation start 
string id = DateTime.Now.ToString("yy") + DateTime.Now.AddYears(-1).ToString("yy") + s; 
//Operation end 

//Increment the value of s by 1. i.e 00001 to 00002 

這可以輕鬆完成通過轉換的小號價值爲int和遞增1,但畢竟,我也必須S的增加值存儲在5位,因而這將是「 00002「

這想給我一個痛苦...

+1

什麼是你的問題? – ken2k 2013-03-14 12:29:42

+0

我不明白如果存儲字符串「0000x」是一個要求或是你的痛苦。 – Larry 2013-03-14 12:35:02

回答

11

使用

string s = "00001"; 
int number = Convert.ToInt32(s); 
number += 1; 
string str = number.ToString("D5"); 

得到ATLEAST 5位。

The "D" (or decimal) format specifier

如果需要,該數被用零填充到其左側,以產生由所述精度說明給定的位數。如果未指定 精度說明符,則缺省值是表示不帶前導零的整數所需的最小值 。

+0

@peer,感謝您的編輯:) – Habib 2013-03-14 12:32:51

+1

如果愛Habibs'ansswers是錯的,我不想說得對:) – 2013-03-14 13:12:13

+1

太好了你@SonerGönül – Habib 2013-03-15 04:23:20

5

這似乎適用於我。

string s = "00001"; 
int i = Int32.Parse(s); 
i++; 
s = i.ToString("D" + s.Length); 
1

所以我想你想知道如何將int轉換爲5位string

你可以這樣做:

int i = 1; 
string s = i.ToString("D5"); 
//s = "00001" 

有很多format examples here

0

使用String.Format()來實現這一目標:

string str = String.Format({0:#####}, s); 

here

0

這個工程使用PadLeft功能:

int i = 1; // Initially stored somewhere. 
//Operation start 
string id = DateTime.Now.ToString("yy") + DateTime.Now.AddYears(-1).ToString("yy") + i.ToString().PadLeft(5, '0'); 
//Operation end