字符串值的数字增量
我的申请由于某种原因我有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