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

这可以通过将s的值转换为 int 并将其递增 1 来轻松完成,但毕竟我还必须将 s 的递增值存储在 5 位中,因此它将是"00002"

这种想法让我很痛苦...

4

5 回答 5

11

利用

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

获得至少 5 位数。

“D”(或十进制)格式说明符

如果需要,该数字在其左侧填充零以产生精度说明符给出的位数。如果未指定精度说明符,则默认值是表示不带前导零的整数所需的最小值。

于 2013-03-14T12:29:47.307 回答
6

这似乎对我有用。

string s = "00001";
int i = Int32.Parse(s);
i++;
s = i.ToString("D" + s.Length);
于 2013-03-14T12:30:35.990 回答
1

所以我想你想知道如何将 an 转换int为 5 digit string

你可以这样做:

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

这里有很多格式示例

于 2013-03-14T12:30:46.447 回答
0

用于String.Format()实现此目的:

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

这里

于 2013-03-14T12:31:15.310 回答
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
于 2013-03-14T12:33:01.810 回答