字符串值的数字增量

我的申请由于某种原因我有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. ie 00001 to 00002 

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

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

使用

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

得到至少5位数。

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

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

这似乎对我有用。

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

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

你可以这样做:

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

这里有很多格式示例 。

使用String.Format()来实现这个目的:

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

看这里

这可以使用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