字符串值的数字增量

时间:2013-03-14 12:27:57

标签: c#

我的申请由于某种原因,我有两个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”即可。

这个想法给我一个痛苦......

5 个答案:

答案 0 :(得分:11)

使用

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

获得至少5位数。

The "D" (or decimal) format specifier

  

如果需要,数字用左边的零填充,以产生精度说明符给出的位数。如果不是   指定了精度说明符,默认值是最小值   需要表示不带前导零的整数。

答案 1 :(得分:5)

这似乎对我有用。

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

答案 2 :(得分:1)

所以我想您想知道如何将int转换为5位string

你可以这样做:

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

有很多format examples here

答案 3 :(得分:0)

使用String.Format()来实现这一目标:

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

here

答案 4 :(得分: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